<?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"
                     caller-allocates="0"
                     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="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" doc=" or not.">
            <type name="boolean" c:type="gboolean"/>
          </parameter>
        </parameters>
      </method>
      <method name="set_property_disabled"
              c:identifier="gst_controller_set_property_disabled"
              doc="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" doc=" or not.">
            <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="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="Sine waveform (default)"
              glib:nick="sine"/>
      <member name="square"
              value="1"
              c:identifier="Square waveform"
              glib:nick="square"/>
      <member name="saw"
              value="2"
              c:identifier="Saw waveform"
              glib:nick="saw"/>
      <member name="reverse_saw"
              value="3"
              c:identifier="Reverse saw waveform"
              glib:nick="reverse-saw"/>
      <member name="triangle"
              value="4"
              c:identifier="Triangle waveform"
              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>
