<?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:doc="http://www.gtk.org/introspection/doc/1.0"
            xmlns:glib="http://www.gtk.org/introspection/glib/1.0">
  <include name="GModule" version="2.0"/>
  <include name="GObject" version="2.0"/>
  <include name="Gio" version="2.0"/>
  <c:include name="grilo.h"/>
  <doc:format name="unknown"/>
  <namespace name="Grl"
             version="0.3"
             shared-library="libgrilo-0.3.so.0"
             c:identifier-prefixes="Grl"
             c:symbol-prefixes="grl">
    <alias name="KeyID" c:type="GrlKeyID">
      <source-position filename="src/grl-metadata-key.h" line="43"/>
      <type name="guint32" c:type="guint32"/>
    </alias>
    <function-macro name="CAPS" c:identifier="GRL_CAPS" introspectable="0">
      <source-position filename="src/grl-caps.h" line="63"/>
      <parameters>
        <parameter name="obj">
        </parameter>
      </parameters>
    </function-macro>
    <function-macro name="CAPS_CLASS"
                    c:identifier="GRL_CAPS_CLASS"
                    introspectable="0">
      <source-position filename="src/grl-caps.h" line="64"/>
      <parameters>
        <parameter name="klass">
        </parameter>
      </parameters>
    </function-macro>
    <function-macro name="CAPS_GET_CLASS"
                    c:identifier="GRL_CAPS_GET_CLASS"
                    introspectable="0">
      <source-position filename="src/grl-caps.h" line="67"/>
      <parameters>
        <parameter name="obj">
        </parameter>
      </parameters>
    </function-macro>
    <function-macro name="CONFIG" c:identifier="GRL_CONFIG" introspectable="0">
      <source-position filename="src/data/grl-config.h" line="42"/>
      <parameters>
        <parameter name="obj">
        </parameter>
      </parameters>
    </function-macro>
    <function-macro name="CONFIG_CLASS"
                    c:identifier="GRL_CONFIG_CLASS"
                    introspectable="0">
      <source-position filename="src/data/grl-config.h" line="47"/>
      <parameters>
        <parameter name="klass">
        </parameter>
      </parameters>
    </function-macro>
    <function-macro name="CONFIG_GET_CLASS"
                    c:identifier="GRL_CONFIG_GET_CLASS"
                    introspectable="0">
      <source-position filename="src/data/grl-config.h" line="60"/>
      <parameters>
        <parameter name="obj">
        </parameter>
      </parameters>
    </function-macro>
    <constant name="CONFIG_KEY_APIKEY"
              value="api-key"
              c:type="GRL_CONFIG_KEY_APIKEY">
      <source-position filename="src/data/grl-config.h" line="67"/>
      <type name="utf8" c:type="gchar*"/>
    </constant>
    <constant name="CONFIG_KEY_APIKEY_BLOB"
              value="api-key-blob"
              c:type="GRL_CONFIG_KEY_APIKEY_BLOB">
      <source-position filename="src/data/grl-config.h" line="68"/>
      <type name="utf8" c:type="gchar*"/>
    </constant>
    <constant name="CONFIG_KEY_APISECRET"
              value="api-secret"
              c:type="GRL_CONFIG_KEY_APISECRET">
      <source-position filename="src/data/grl-config.h" line="71"/>
      <type name="utf8" c:type="gchar*"/>
    </constant>
    <constant name="CONFIG_KEY_APITOKEN"
              value="api-token"
              c:type="GRL_CONFIG_KEY_APITOKEN">
      <source-position filename="src/data/grl-config.h" line="69"/>
      <type name="utf8" c:type="gchar*"/>
    </constant>
    <constant name="CONFIG_KEY_APITOKEN_SECRET"
              value="api-token-secret"
              c:type="GRL_CONFIG_KEY_APITOKEN_SECRET">
      <source-position filename="src/data/grl-config.h" line="70"/>
      <type name="utf8" c:type="gchar*"/>
    </constant>
    <constant name="CONFIG_KEY_PASSWORD"
              value="password"
              c:type="GRL_CONFIG_KEY_PASSWORD">
      <source-position filename="src/data/grl-config.h" line="73"/>
      <type name="utf8" c:type="gchar*"/>
    </constant>
    <constant name="CONFIG_KEY_PLUGIN"
              value="target-plugin"
              c:type="GRL_CONFIG_KEY_PLUGIN">
      <source-position filename="src/data/grl-config.h" line="65"/>
      <type name="utf8" c:type="gchar*"/>
    </constant>
    <constant name="CONFIG_KEY_SOURCE"
              value="target-source"
              c:type="GRL_CONFIG_KEY_SOURCE">
      <source-position filename="src/data/grl-config.h" line="66"/>
      <type name="utf8" c:type="gchar*"/>
    </constant>
    <constant name="CONFIG_KEY_USERNAME"
              value="username"
              c:type="GRL_CONFIG_KEY_USERNAME">
      <source-position filename="src/data/grl-config.h" line="72"/>
      <type name="utf8" c:type="gchar*"/>
    </constant>
    <constant name="CONFIG_PATH_VAR"
              value="GRL_CONFIG_PATH"
              c:type="GRL_CONFIG_PATH_VAR">
      <source-position filename="src/grl-registry.h" line="43"/>
      <type name="utf8" c:type="gchar*"/>
    </constant>
    <constant name="COUNT_INFINITY" value="-1" c:type="GRL_COUNT_INFINITY">
      <source-position filename="src/grl-operation-options.h" line="96"/>
      <type name="gint" c:type="gint"/>
    </constant>
    <class name="Caps"
           c:symbol-prefix="caps"
           c:type="GrlCaps"
           parent="GObject.Object"
           glib:type-name="GrlCaps"
           glib:get-type="grl_caps_get_type"
           glib:type-struct="CapsClass">
      <source-position filename="src/grl-caps.h" line="58"/>
      <constructor name="new" c:identifier="grl_caps_new" version="0.2.0">
        <doc xml:space="preserve"
             filename="src/grl-caps.c"
             line="106">Creates a new caps object.</doc>
        <source-position filename="src/grl-caps.h" line="90"/>
        <return-value transfer-ownership="full">
          <doc xml:space="preserve"
               filename="src/grl-caps.c"
               line="111">a new caps object.</doc>
          <type name="Caps" c:type="GrlCaps*"/>
        </return-value>
      </constructor>
      <method name="get_key_filter"
              c:identifier="grl_caps_get_key_filter"
              version="0.2.0">
        <source-position filename="src/grl-caps.h" line="100"/>
        <return-value transfer-ownership="none">
          <type name="GLib.List" c:type="GList*">
            <type name="KeyID"/>
          </type>
        </return-value>
        <parameters>
          <instance-parameter name="caps" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="src/grl-caps.c"
                 line="199">a #GrlCaps instance</doc>
            <type name="Caps" c:type="GrlCaps*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_key_range_filter"
              c:identifier="grl_caps_get_key_range_filter"
              version="0.2.0">
        <source-position filename="src/grl-caps.h" line="106"/>
        <return-value transfer-ownership="none">
          <type name="GLib.List" c:type="GList*">
            <type name="KeyID"/>
          </type>
        </return-value>
        <parameters>
          <instance-parameter name="caps" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="src/grl-caps.c"
                 line="256">a #GrlCaps instance</doc>
            <type name="Caps" c:type="GrlCaps*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_type_filter"
              c:identifier="grl_caps_get_type_filter"
              version="0.2.0">
        <source-position filename="src/grl-caps.h" line="96"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="src/grl-caps.c"
               line="168">the supported #GrlTypeFilter</doc>
          <type name="TypeFilter" c:type="GrlTypeFilter"/>
        </return-value>
        <parameters>
          <instance-parameter name="caps" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="src/grl-caps.c"
                 line="166">a #GrlCaps instance</doc>
            <type name="Caps" c:type="GrlCaps*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="is_key_filter"
              c:identifier="grl_caps_is_key_filter"
              version="0.2.0">
        <doc xml:space="preserve"
             filename="src/grl-caps.c"
             line="230">Checks if @key is supported for filtering in @caps.</doc>
        <source-position filename="src/grl-caps.h" line="104"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="src/grl-caps.c"
               line="237">%TRUE if @key can be used for filtering</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <instance-parameter name="caps" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="src/grl-caps.c"
                 line="232">a #GrlCaps instance</doc>
            <type name="Caps" c:type="GrlCaps*"/>
          </instance-parameter>
          <parameter name="key" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="src/grl-caps.c"
                 line="233">a #GrlKeyID</doc>
            <type name="KeyID" c:type="GrlKeyID"/>
          </parameter>
        </parameters>
      </method>
      <method name="is_key_range_filter"
              c:identifier="grl_caps_is_key_range_filter"
              version="0.2.0">
        <doc xml:space="preserve"
             filename="src/grl-caps.c"
             line="287">Checks if @key is supported for filtering by range in @caps.</doc>
        <source-position filename="src/grl-caps.h" line="110"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="src/grl-caps.c"
               line="294">%TRUE if @key can be used for filtering</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <instance-parameter name="caps" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="src/grl-caps.c"
                 line="289">a #grlCaps instance</doc>
            <type name="Caps" c:type="GrlCaps*"/>
          </instance-parameter>
          <parameter name="key" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="src/grl-caps.c"
                 line="290">a #GrlKeyID</doc>
            <type name="KeyID" c:type="GrlKeyID"/>
          </parameter>
        </parameters>
      </method>
      <method name="set_key_filter"
              c:identifier="grl_caps_set_key_filter"
              version="0.2.0">
        <source-position filename="src/grl-caps.h" line="102"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="caps" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="src/grl-caps.c"
                 line="215">a #GrlCaps instance</doc>
            <type name="Caps" c:type="GrlCaps*"/>
          </instance-parameter>
          <parameter name="keys" transfer-ownership="none">
            <type name="GLib.List" c:type="GList*">
              <type name="KeyID"/>
            </type>
          </parameter>
        </parameters>
      </method>
      <method name="set_key_range_filter"
              c:identifier="grl_caps_set_key_range_filter"
              version="0.2.0">
        <source-position filename="src/grl-caps.h" line="108"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="caps" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="src/grl-caps.c"
                 line="272">a #GrlCaps instance</doc>
            <type name="Caps" c:type="GrlCaps*"/>
          </instance-parameter>
          <parameter name="keys" transfer-ownership="none">
            <type name="GLib.List" c:type="GList*">
              <type name="KeyID"/>
            </type>
          </parameter>
        </parameters>
      </method>
      <method name="set_type_filter"
              c:identifier="grl_caps_set_type_filter"
              version="0.2.0">
        <doc xml:space="preserve"
             filename="src/grl-caps.c"
             line="180">Sets the supported filter capability.</doc>
        <source-position filename="src/grl-caps.h" line="98"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="caps" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="src/grl-caps.c"
                 line="182">a #GrlCaps instance</doc>
            <type name="Caps" c:type="GrlCaps*"/>
          </instance-parameter>
          <parameter name="filter" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="src/grl-caps.c"
                 line="183">a #GrlTypeFilter</doc>
            <type name="TypeFilter" c:type="GrlTypeFilter"/>
          </parameter>
        </parameters>
      </method>
      <method name="test_option"
              c:identifier="grl_caps_test_option"
              version="0.2.0">
        <doc xml:space="preserve"
             filename="src/grl-caps.c"
             line="121">Checks whether (@key, @value) are authorized by @caps.</doc>
        <source-position filename="src/grl-caps.h" line="92"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="src/grl-caps.c"
               line="129">%TRUE if (@key, @value) obey to @caps, %FALSE otherwise.</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <instance-parameter name="caps" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="src/grl-caps.c"
                 line="123">a #GrlCaps instance</doc>
            <type name="Caps" c:type="GrlCaps*"/>
          </instance-parameter>
          <parameter name="key" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="src/grl-caps.c"
                 line="124">a key to test</doc>
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
          <parameter name="value" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="src/grl-caps.c"
                 line="125">the value corresponding to @key to test against @caps</doc>
            <type name="GObject.Value" c:type="const GValue*"/>
          </parameter>
        </parameters>
      </method>
      <field name="parent">
        <type name="GObject.Object" c:type="GObject"/>
      </field>
      <field name="priv" readable="0" private="1">
        <type name="CapsPrivate" c:type="GrlCapsPrivate*"/>
      </field>
      <field name="_grl_reserved" readable="0" private="1">
        <array zero-terminated="0" fixed-size="8">
          <type name="gpointer" c:type="gpointer"/>
        </array>
      </field>
    </class>
    <record name="CapsClass"
            c:type="GrlCapsClass"
            glib:is-gtype-struct-for="Caps">
      <doc xml:space="preserve"
           filename="src/grl-caps.h"
           line="47">Grilo Capabilities class.</doc>
      <source-position filename="src/grl-caps.h" line="58"/>
      <field name="parent">
        <doc xml:space="preserve"
             filename="src/grl-caps.h"
             line="49">the parent class structure</doc>
        <type name="GObject.ObjectClass" c:type="GObjectClass"/>
      </field>
      <field name="_grl_reserved" readable="0" private="1">
        <array zero-terminated="0" fixed-size="16">
          <type name="gpointer" c:type="gpointer"/>
        </array>
      </field>
    </record>
    <record name="CapsPrivate"
            c:type="GrlCapsPrivate"
            disguised="1"
            opaque="1">
      <source-position filename="src/grl-caps.h" line="36"/>
    </record>
    <class name="Config"
           c:symbol-prefix="config"
           c:type="GrlConfig"
           parent="GObject.Object"
           glib:type-name="GrlConfig"
           glib:get-type="grl_config_get_type"
           glib:type-struct="ConfigClass">
      <source-position filename="src/data/grl-config.h" line="101"/>
      <constructor name="new" c:identifier="grl_config_new" version="0.1.4">
        <doc xml:space="preserve"
             filename="src/data/grl-config.c"
             line="83">Creates a new data config object that will be associated with a plugin
(if @source is NULL), or a specific source spawned from a plugin (if
@source is not NULL). The latter may be useful for plugins
spawning various sources, each one needing a different configuration.</doc>
        <source-position filename="src/data/grl-config.h" line="140"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="src/data/grl-config.c"
               line="93">a newly-allocated data config. The data
config associated with the plugin should not be freed until the plugin
has been unloaded.</doc>
          <type name="Config" c:type="GrlConfig*"/>
        </return-value>
        <parameters>
          <parameter name="plugin" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="src/data/grl-config.c"
                 line="85">plugin id for this configuration</doc>
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
          <parameter name="source"
                     transfer-ownership="none"
                     nullable="1"
                     allow-none="1">
            <doc xml:space="preserve"
                 filename="src/data/grl-config.c"
                 line="86">source id for this configuration</doc>
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
        </parameters>
      </constructor>
      <method name="get_api_key"
              c:identifier="grl_config_get_api_key"
              version="0.1.4">
        <source-position filename="src/data/grl-config.h" line="125"/>
        <return-value transfer-ownership="full">
          <doc xml:space="preserve"
               filename="src/data/grl-config.c"
               line="566">the webservice API key</doc>
          <type name="utf8" c:type="gchar*"/>
        </return-value>
        <parameters>
          <instance-parameter name="config" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="src/data/grl-config.c"
                 line="564">the config instance</doc>
            <type name="Config" c:type="GrlConfig*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_api_key_blob"
              c:identifier="grl_config_get_api_key_blob"
              version="0.1.9">
        <source-position filename="src/data/grl-config.h" line="127"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="src/data/grl-config.c"
               line="582">the binary API key, size will reflect the size of the buffer</doc>
          <type name="guint8" c:type="guint8*"/>
        </return-value>
        <parameters>
          <instance-parameter name="config" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="src/data/grl-config.c"
                 line="579">the config instance</doc>
            <type name="Config" c:type="GrlConfig*"/>
          </instance-parameter>
          <parameter name="size" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="src/data/grl-config.c"
                 line="580">pointer to size of data</doc>
            <type name="gsize" c:type="gsize*"/>
          </parameter>
        </parameters>
      </method>
      <method name="get_api_secret"
              c:identifier="grl_config_get_api_secret"
              version="0.1.4">
        <source-position filename="src/data/grl-config.h" line="133"/>
        <return-value transfer-ownership="full">
          <doc xml:space="preserve"
               filename="src/data/grl-config.c"
               line="627">the webservice API passphrase</doc>
          <type name="utf8" c:type="gchar*"/>
        </return-value>
        <parameters>
          <instance-parameter name="config" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="src/data/grl-config.c"
                 line="625">the config instance</doc>
            <type name="Config" c:type="GrlConfig*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_api_token"
              c:identifier="grl_config_get_api_token"
              version="0.1.4">
        <source-position filename="src/data/grl-config.h" line="129"/>
        <return-value transfer-ownership="full">
          <doc xml:space="preserve"
               filename="src/data/grl-config.c"
               line="596">the webservice API token</doc>
          <type name="utf8" c:type="gchar*"/>
        </return-value>
        <parameters>
          <instance-parameter name="config" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="src/data/grl-config.c"
                 line="594">the config instance</doc>
            <type name="Config" c:type="GrlConfig*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_api_token_secret"
              c:identifier="grl_config_get_api_token_secret"
              version="0.2.6">
        <source-position filename="src/data/grl-config.h" line="131"/>
        <return-value transfer-ownership="full">
          <doc xml:space="preserve"
               filename="src/data/grl-config.c"
               line="611">the webservice API token secret
(Needed by OAuth)</doc>
          <type name="utf8" c:type="gchar*"/>
        </return-value>
        <parameters>
          <instance-parameter name="config" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="src/data/grl-config.c"
                 line="609">the config instance</doc>
            <type name="Config" c:type="GrlConfig*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_binary"
              c:identifier="grl_config_get_binary"
              version="0.1.9">
        <doc xml:space="preserve"
             filename="src/data/grl-config.c"
             line="325">Gets the value of @param encoded as base64. If @size is not %NULL, it puts
there the size of the value.</doc>
        <source-position filename="src/data/grl-config.h" line="164"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="src/data/grl-config.c"
               line="334">@param value</doc>
          <type name="guint8" c:type="guint8*"/>
        </return-value>
        <parameters>
          <instance-parameter name="config" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="src/data/grl-config.c"
                 line="327">the config instance</doc>
            <type name="Config" c:type="GrlConfig*"/>
          </instance-parameter>
          <parameter name="param" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="src/data/grl-config.c"
                 line="328">a binary type parameter</doc>
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
          <parameter name="size"
                     transfer-ownership="none"
                     nullable="1"
                     allow-none="1">
            <doc xml:space="preserve"
                 filename="src/data/grl-config.c"
                 line="329">place for size of value</doc>
            <type name="gsize" c:type="gsize*"/>
          </parameter>
        </parameters>
      </method>
      <method name="get_boolean"
              c:identifier="grl_config_get_boolean"
              version="0.1.8">
        <source-position filename="src/data/grl-config.h" line="162"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="src/data/grl-config.c"
               line="314">@param value</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <instance-parameter name="config" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="src/data/grl-config.c"
                 line="311">the config instance</doc>
            <type name="Config" c:type="GrlConfig*"/>
          </instance-parameter>
          <parameter name="param" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="src/data/grl-config.c"
                 line="312">a boolean type parameter</doc>
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
        </parameters>
      </method>
      <method name="get_float"
              c:identifier="grl_config_get_float"
              version="0.1.5">
        <source-position filename="src/data/grl-config.h" line="160"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="src/data/grl-config.c"
               line="297">@param value</doc>
          <type name="gfloat" c:type="gfloat"/>
        </return-value>
        <parameters>
          <instance-parameter name="config" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="src/data/grl-config.c"
                 line="294">the config instance</doc>
            <type name="Config" c:type="GrlConfig*"/>
          </instance-parameter>
          <parameter name="param" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="src/data/grl-config.c"
                 line="295">a float type parameter</doc>
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
        </parameters>
      </method>
      <method name="get_int" c:identifier="grl_config_get_int" version="0.1.5">
        <source-position filename="src/data/grl-config.h" line="158"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="src/data/grl-config.c"
               line="281">@param value</doc>
          <type name="gint" c:type="gint"/>
        </return-value>
        <parameters>
          <instance-parameter name="config" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="src/data/grl-config.c"
                 line="278">the config instance</doc>
            <type name="Config" c:type="GrlConfig*"/>
          </instance-parameter>
          <parameter name="param" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="src/data/grl-config.c"
                 line="279">an integer type parameter</doc>
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
        </parameters>
      </method>
      <method name="get_password"
              c:identifier="grl_config_get_password"
              version="0.1.8">
        <source-position filename="src/data/grl-config.h" line="137"/>
        <return-value transfer-ownership="full">
          <doc xml:space="preserve"
               filename="src/data/grl-config.c"
               line="657">the password</doc>
          <type name="utf8" c:type="gchar*"/>
        </return-value>
        <parameters>
          <instance-parameter name="config" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="src/data/grl-config.c"
                 line="655">the config instance</doc>
            <type name="Config" c:type="GrlConfig*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_plugin"
              c:identifier="grl_config_get_plugin"
              version="0.1.4">
        <source-position filename="src/data/grl-config.h" line="121"/>
        <return-value transfer-ownership="full">
          <doc xml:space="preserve"
               filename="src/data/grl-config.c"
               line="538">the plugin id</doc>
          <type name="utf8" c:type="gchar*"/>
        </return-value>
        <parameters>
          <instance-parameter name="config" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="src/data/grl-config.c"
                 line="536">the config instance</doc>
            <type name="Config" c:type="GrlConfig*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_source" c:identifier="grl_config_get_source">
        <source-position filename="src/data/grl-config.h" line="123"/>
        <return-value transfer-ownership="full">
          <doc xml:space="preserve"
               filename="src/data/grl-config.c"
               line="553">the source id</doc>
          <type name="utf8" c:type="gchar*"/>
        </return-value>
        <parameters>
          <instance-parameter name="config" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="src/data/grl-config.c"
                 line="551">the config instance</doc>
            <type name="Config" c:type="GrlConfig*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_string"
              c:identifier="grl_config_get_string"
              version="0.1.5">
        <source-position filename="src/data/grl-config.h" line="156"/>
        <return-value transfer-ownership="full">
          <doc xml:space="preserve"
               filename="src/data/grl-config.c"
               line="265">@param value</doc>
          <type name="utf8" c:type="gchar*"/>
        </return-value>
        <parameters>
          <instance-parameter name="config" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="src/data/grl-config.c"
                 line="262">the config instance</doc>
            <type name="Config" c:type="GrlConfig*"/>
          </instance-parameter>
          <parameter name="param" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="src/data/grl-config.c"
                 line="263">a string type paramter</doc>
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
        </parameters>
      </method>
      <method name="get_username"
              c:identifier="grl_config_get_username"
              version="0.1.8">
        <source-position filename="src/data/grl-config.h" line="135"/>
        <return-value transfer-ownership="full">
          <doc xml:space="preserve"
               filename="src/data/grl-config.c"
               line="642">the username</doc>
          <type name="utf8" c:type="gchar*"/>
        </return-value>
        <parameters>
          <instance-parameter name="config" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="src/data/grl-config.c"
                 line="640">the config instance</doc>
            <type name="Config" c:type="GrlConfig*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="has_param"
              c:identifier="grl_config_has_param"
              version="0.1.8">
        <source-position filename="src/data/grl-config.h" line="166"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="src/data/grl-config.c"
               line="673">TRUE if @params has a defined value within @config, FALSE
otherwise.</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <instance-parameter name="config" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="src/data/grl-config.c"
                 line="670">the config instance</doc>
            <type name="Config" c:type="GrlConfig*"/>
          </instance-parameter>
          <parameter name="param" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="src/data/grl-config.c"
                 line="671">the param</doc>
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
        </parameters>
      </method>
      <method name="set" c:identifier="grl_config_set" version="0.1.5">
        <doc xml:space="preserve"
             filename="src/data/grl-config.c"
             line="114">Set @param @value.</doc>
        <source-position filename="src/data/grl-config.h" line="142"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="config" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="src/data/grl-config.c"
                 line="116">the config instance</doc>
            <type name="Config" c:type="GrlConfig*"/>
          </instance-parameter>
          <parameter name="param" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="src/data/grl-config.c"
                 line="117">a parameter</doc>
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
          <parameter name="value" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="src/data/grl-config.c"
                 line="118">value</doc>
            <type name="GObject.Value" c:type="const GValue*"/>
          </parameter>
        </parameters>
      </method>
      <method name="set_api_key"
              c:identifier="grl_config_set_api_key"
              version="0.1.4">
        <doc xml:space="preserve"
             filename="src/data/grl-config.c"
             line="400">Set the webservice API key in the configuration</doc>
        <source-position filename="src/data/grl-config.h" line="107"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="config" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="src/data/grl-config.c"
                 line="402">the config instance</doc>
            <type name="Config" c:type="GrlConfig*"/>
          </instance-parameter>
          <parameter name="key" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="src/data/grl-config.c"
                 line="403">the API key</doc>
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
        </parameters>
      </method>
      <method name="set_api_key_blob"
              c:identifier="grl_config_set_api_key_blob"
              version="0.1.9">
        <doc xml:space="preserve"
             filename="src/data/grl-config.c"
             line="419">Set the binary API key in the configuration</doc>
        <source-position filename="src/data/grl-config.h" line="109"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="config" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="src/data/grl-config.c"
                 line="421">the config instance</doc>
            <type name="Config" c:type="GrlConfig*"/>
          </instance-parameter>
          <parameter name="blob" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="src/data/grl-config.c"
                 line="422">the binary API key blob</doc>
            <type name="guint8" c:type="const guint8*"/>
          </parameter>
          <parameter name="size" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="src/data/grl-config.c"
                 line="423">the size of the blob</doc>
            <type name="gsize" c:type="gsize"/>
          </parameter>
        </parameters>
      </method>
      <method name="set_api_secret"
              c:identifier="grl_config_set_api_secret"
              version="0.1.4">
        <doc xml:space="preserve"
             filename="src/data/grl-config.c"
             line="477">Set the webservice passphrase in the configuration</doc>
        <source-position filename="src/data/grl-config.h" line="115"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="config" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="src/data/grl-config.c"
                 line="479">the config instance</doc>
            <type name="Config" c:type="GrlConfig*"/>
          </instance-parameter>
          <parameter name="secret" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="src/data/grl-config.c"
                 line="480">the webservice passphrase</doc>
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
        </parameters>
      </method>
      <method name="set_api_token"
              c:identifier="grl_config_set_api_token"
              version="0.1.4">
        <doc xml:space="preserve"
             filename="src/data/grl-config.c"
             line="437">Set the webservice API token in the configuration</doc>
        <source-position filename="src/data/grl-config.h" line="111"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="config" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="src/data/grl-config.c"
                 line="439">the config instance</doc>
            <type name="Config" c:type="GrlConfig*"/>
          </instance-parameter>
          <parameter name="token" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="src/data/grl-config.c"
                 line="440">the API token</doc>
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
        </parameters>
      </method>
      <method name="set_api_token_secret"
              c:identifier="grl_config_set_api_token_secret"
              version="0.2.6">
        <doc xml:space="preserve"
             filename="src/data/grl-config.c"
             line="456">Set the webservice API token secret in the configuration
(Needed by OAuth)</doc>
        <source-position filename="src/data/grl-config.h" line="113"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="config" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="src/data/grl-config.c"
                 line="458">the config instance</doc>
            <type name="Config" c:type="GrlConfig*"/>
          </instance-parameter>
          <parameter name="secret" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="src/data/grl-config.c"
                 line="459">the API token</doc>
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
        </parameters>
      </method>
      <method name="set_binary"
              c:identifier="grl_config_set_binary"
              version="0.1.9">
        <doc xml:space="preserve"
             filename="src/data/grl-config.c"
             line="237">Set @param value.</doc>
        <source-position filename="src/data/grl-config.h" line="154"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="config" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="src/data/grl-config.c"
                 line="239">the config instance</doc>
            <type name="Config" c:type="GrlConfig*"/>
          </instance-parameter>
          <parameter name="param" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="src/data/grl-config.c"
                 line="240">a binary type parameter</doc>
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
          <parameter name="blob" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="src/data/grl-config.c"
                 line="241">a base64 encoded binary value</doc>
            <type name="guint8" c:type="const guint8*"/>
          </parameter>
          <parameter name="size" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="src/data/grl-config.c"
                 line="242">size of @value</doc>
            <type name="gsize" c:type="gsize"/>
          </parameter>
        </parameters>
      </method>
      <method name="set_boolean"
              c:identifier="grl_config_set_boolean"
              version="0.1.8">
        <doc xml:space="preserve"
             filename="src/data/grl-config.c"
             line="220">Set @param @value.</doc>
        <source-position filename="src/data/grl-config.h" line="152"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="config" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="src/data/grl-config.c"
                 line="222">the config instance</doc>
            <type name="Config" c:type="GrlConfig*"/>
          </instance-parameter>
          <parameter name="param" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="src/data/grl-config.c"
                 line="223">a boolean type parameter</doc>
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
          <parameter name="value" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="src/data/grl-config.c"
                 line="224">a value</doc>
            <type name="gboolean" c:type="gboolean"/>
          </parameter>
        </parameters>
      </method>
      <method name="set_float"
              c:identifier="grl_config_set_float"
              version="0.1.5">
        <doc xml:space="preserve"
             filename="src/data/grl-config.c"
             line="203">Set @param @value.</doc>
        <source-position filename="src/data/grl-config.h" line="150"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="config" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="src/data/grl-config.c"
                 line="205">the config instance</doc>
            <type name="Config" c:type="GrlConfig*"/>
          </instance-parameter>
          <parameter name="param" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="src/data/grl-config.c"
                 line="206">a float type parameter</doc>
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
          <parameter name="value" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="src/data/grl-config.c"
                 line="207">a value</doc>
            <type name="gfloat" c:type="gfloat"/>
          </parameter>
        </parameters>
      </method>
      <method name="set_int" c:identifier="grl_config_set_int" version="0.1.5">
        <doc xml:space="preserve"
             filename="src/data/grl-config.c"
             line="185">Set @param @value.</doc>
        <source-position filename="src/data/grl-config.h" line="148"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="config" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="src/data/grl-config.c"
                 line="187">the config instance</doc>
            <type name="Config" c:type="GrlConfig*"/>
          </instance-parameter>
          <parameter name="param" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="src/data/grl-config.c"
                 line="188">an integer type parameter</doc>
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
          <parameter name="value" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="src/data/grl-config.c"
                 line="189">a value</doc>
            <type name="gint" c:type="gint"/>
          </parameter>
        </parameters>
      </method>
      <method name="set_password"
              c:identifier="grl_config_set_password"
              version="0.1.8">
        <doc xml:space="preserve"
             filename="src/data/grl-config.c"
             line="515">Set the password in the configuration</doc>
        <source-position filename="src/data/grl-config.h" line="119"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="config" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="src/data/grl-config.c"
                 line="517">the config instance</doc>
            <type name="Config" c:type="GrlConfig*"/>
          </instance-parameter>
          <parameter name="password" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="src/data/grl-config.c"
                 line="518">the password</doc>
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
        </parameters>
      </method>
      <method name="set_plugin"
              c:identifier="grl_config_set_plugin"
              version="0.1.4">
        <doc xml:space="preserve"
             filename="src/data/grl-config.c"
             line="361">Set the plugin key in the configuration</doc>
        <source-position filename="src/data/grl-config.h" line="103"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="config" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="src/data/grl-config.c"
                 line="363">the config instance</doc>
            <type name="Config" c:type="GrlConfig*"/>
          </instance-parameter>
          <parameter name="plugin" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="src/data/grl-config.c"
                 line="364">the plugin id</doc>
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
        </parameters>
      </method>
      <method name="set_source"
              c:identifier="grl_config_set_source"
              version="0.1.4">
        <doc xml:space="preserve"
             filename="src/data/grl-config.c"
             line="381">Set the source key in the configuration</doc>
        <source-position filename="src/data/grl-config.h" line="105"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="config" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="src/data/grl-config.c"
                 line="383">the config instance</doc>
            <type name="Config" c:type="GrlConfig*"/>
          </instance-parameter>
          <parameter name="source" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="src/data/grl-config.c"
                 line="384">the source id</doc>
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
        </parameters>
      </method>
      <method name="set_string"
              c:identifier="grl_config_set_string"
              version="0.1.5">
        <doc xml:space="preserve"
             filename="src/data/grl-config.c"
             line="168">Set @param @value.</doc>
        <source-position filename="src/data/grl-config.h" line="144"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="config" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="src/data/grl-config.c"
                 line="170">the config instance</doc>
            <type name="Config" c:type="GrlConfig*"/>
          </instance-parameter>
          <parameter name="param" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="src/data/grl-config.c"
                 line="171">a string type parameter</doc>
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
          <parameter name="value" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="src/data/grl-config.c"
                 line="172">a value</doc>
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
        </parameters>
      </method>
      <method name="set_username"
              c:identifier="grl_config_set_username"
              version="0.1.8">
        <doc xml:space="preserve"
             filename="src/data/grl-config.c"
             line="496">Set the username in the configuration</doc>
        <source-position filename="src/data/grl-config.h" line="117"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="config" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="src/data/grl-config.c"
                 line="498">the config instance</doc>
            <type name="Config" c:type="GrlConfig*"/>
          </instance-parameter>
          <parameter name="username" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="src/data/grl-config.c"
                 line="499">the username</doc>
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
        </parameters>
      </method>
      <field name="parent">
        <type name="GObject.Object" c:type="GObject"/>
      </field>
      <field name="priv">
        <type name="ConfigPrivate" c:type="GrlConfigPrivate*"/>
      </field>
      <field name="_grl_reserved">
        <array zero-terminated="0" fixed-size="8">
          <type name="gpointer" c:type="gpointer"/>
        </array>
      </field>
    </class>
    <record name="ConfigClass"
            c:type="GrlConfigClass"
            glib:is-gtype-struct-for="Config">
      <doc xml:space="preserve"
           filename="src/data/grl-config.h"
           line="89">Grilo Config Class</doc>
      <source-position filename="src/data/grl-config.h" line="101"/>
      <field name="parent_class">
        <doc xml:space="preserve"
             filename="src/data/grl-config.h"
             line="91">the parent class structure</doc>
        <type name="GObject.ObjectClass" c:type="GObjectClass"/>
      </field>
      <field name="_grl_reserved" readable="0" private="1">
        <array zero-terminated="0" fixed-size="16">
          <type name="gpointer" c:type="gpointer"/>
        </array>
      </field>
    </record>
    <record name="ConfigPrivate"
            c:type="GrlConfigPrivate"
            disguised="1"
            opaque="1">
      <source-position filename="src/data/grl-config.h" line="77"/>
    </record>
    <enumeration name="CoreError" c:type="GrlCoreError">
      <doc xml:space="preserve"
           filename="src/grl-error.h"
           line="32">These constants identify all the available core errors</doc>
      <source-position filename="src/grl-error.h" line="76"/>
      <member name="browse_failed"
              value="1"
              c:identifier="GRL_CORE_ERROR_BROWSE_FAILED">
        <doc xml:space="preserve"
             filename="src/grl-error.h"
             line="34">The browse operation failed</doc>
      </member>
      <member name="search_failed"
              value="2"
              c:identifier="GRL_CORE_ERROR_SEARCH_FAILED">
        <doc xml:space="preserve"
             filename="src/grl-error.h"
             line="35">The search operation failed</doc>
      </member>
      <member name="search_null_unsupported"
              value="3"
              c:identifier="GRL_CORE_ERROR_SEARCH_NULL_UNSUPPORTED">
        <doc xml:space="preserve"
             filename="src/grl-error.h"
             line="36">Searching NULL-text is not supported</doc>
      </member>
      <member name="query_failed"
              value="4"
              c:identifier="GRL_CORE_ERROR_QUERY_FAILED">
        <doc xml:space="preserve"
             filename="src/grl-error.h"
             line="37">The query operation failed</doc>
      </member>
      <member name="resolve_failed"
              value="5"
              c:identifier="GRL_CORE_ERROR_RESOLVE_FAILED">
        <doc xml:space="preserve"
             filename="src/grl-error.h"
             line="38">The resolution operation failed</doc>
      </member>
      <member name="media_not_found"
              value="6"
              c:identifier="GRL_CORE_ERROR_MEDIA_NOT_FOUND">
        <doc xml:space="preserve"
             filename="src/grl-error.h"
             line="39">The media was not found</doc>
      </member>
      <member name="store_failed"
              value="7"
              c:identifier="GRL_CORE_ERROR_STORE_FAILED">
        <doc xml:space="preserve"
             filename="src/grl-error.h"
             line="40">The store operation failed</doc>
      </member>
      <member name="store_metadata_failed"
              value="8"
              c:identifier="GRL_CORE_ERROR_STORE_METADATA_FAILED">
        <doc xml:space="preserve"
             filename="src/grl-error.h"
             line="41">The store metadata operation failed</doc>
      </member>
      <member name="remove_failed"
              value="9"
              c:identifier="GRL_CORE_ERROR_REMOVE_FAILED">
        <doc xml:space="preserve"
             filename="src/grl-error.h"
             line="42">The removal operation failed</doc>
      </member>
      <member name="media_from_uri_failed"
              value="10"
              c:identifier="GRL_CORE_ERROR_MEDIA_FROM_URI_FAILED">
        <doc xml:space="preserve"
             filename="src/grl-error.h"
             line="43">The media from_uri operation failed</doc>
      </member>
      <member name="config_load_failed"
              value="11"
              c:identifier="GRL_CORE_ERROR_CONFIG_LOAD_FAILED">
        <doc xml:space="preserve"
             filename="src/grl-error.h"
             line="44">Failed to load plugin configuration from a file</doc>
      </member>
      <member name="config_failed"
              value="12"
              c:identifier="GRL_CORE_ERROR_CONFIG_FAILED">
        <doc xml:space="preserve"
             filename="src/grl-error.h"
             line="45">Failed to set configuration for plugin</doc>
      </member>
      <member name="unregister_source_failed"
              value="13"
              c:identifier="GRL_CORE_ERROR_UNREGISTER_SOURCE_FAILED">
        <doc xml:space="preserve"
             filename="src/grl-error.h"
             line="46">Failed to unregister source</doc>
      </member>
      <member name="load_plugin_failed"
              value="14"
              c:identifier="GRL_CORE_ERROR_LOAD_PLUGIN_FAILED">
        <doc xml:space="preserve"
             filename="src/grl-error.h"
             line="47">Failed to load plugin</doc>
      </member>
      <member name="unload_plugin_failed"
              value="15"
              c:identifier="GRL_CORE_ERROR_UNLOAD_PLUGIN_FAILED">
        <doc xml:space="preserve"
             filename="src/grl-error.h"
             line="48">Failed to unload plugin</doc>
      </member>
      <member name="register_metadata_key_failed"
              value="16"
              c:identifier="GRL_CORE_ERROR_REGISTER_METADATA_KEY_FAILED">
        <doc xml:space="preserve"
             filename="src/grl-error.h"
             line="49">Failed to register metadata key</doc>
      </member>
      <member name="notify_changed_failed"
              value="17"
              c:identifier="GRL_CORE_ERROR_NOTIFY_CHANGED_FAILED">
        <doc xml:space="preserve"
             filename="src/grl-error.h"
             line="50">Failed to start changed notifications</doc>
      </member>
      <member name="operation_cancelled"
              value="18"
              c:identifier="GRL_CORE_ERROR_OPERATION_CANCELLED">
        <doc xml:space="preserve"
             filename="src/grl-error.h"
             line="51">The operation was cancelled</doc>
      </member>
      <member name="authentication_token"
              value="19"
              c:identifier="GRL_CORE_ERROR_AUTHENTICATION_TOKEN">
        <doc xml:space="preserve"
             filename="src/grl-error.h"
             line="52">Invalid authentication token</doc>
      </member>
    </enumeration>
    <function-macro name="DATA" c:identifier="GRL_DATA" introspectable="0">
      <source-position filename="src/data/grl-data.h" line="41"/>
      <parameters>
        <parameter name="obj">
        </parameter>
      </parameters>
    </function-macro>
    <function-macro name="DATA_CLASS"
                    c:identifier="GRL_DATA_CLASS"
                    introspectable="0">
      <source-position filename="src/data/grl-data.h" line="46"/>
      <parameters>
        <parameter name="klass">
        </parameter>
      </parameters>
    </function-macro>
    <function-macro name="DATA_GET_CLASS"
                    c:identifier="GRL_DATA_GET_CLASS"
                    introspectable="0">
      <source-position filename="src/data/grl-data.h" line="59"/>
      <parameters>
        <parameter name="obj">
        </parameter>
      </parameters>
    </function-macro>
    <function-macro name="DEBUG" c:identifier="GRL_DEBUG" introspectable="0">
      <doc xml:space="preserve"
           filename="src/grl-log.h"
           line="186">Output a debugging message in the default log domain.</doc>
      <source-position filename="src/grl-log.h" line="203"/>
      <parameters>
        <parameter name="...">
          <doc xml:space="preserve"
               filename="src/grl-log.h"
               line="188">printf-style message to output</doc>
        </parameter>
      </parameters>
    </function-macro>
    <class name="Data"
           c:symbol-prefix="data"
           c:type="GrlData"
           parent="GObject.Object"
           glib:type-name="GrlData"
           glib:get-type="grl_data_get_type"
           glib:type-struct="DataClass">
      <source-position filename="src/data/grl-data.h" line="92"/>
      <constructor name="new" c:identifier="grl_data_new" version="0.1.4">
        <doc xml:space="preserve"
             filename="src/data/grl-data.c"
             line="120">Creates a new data object.</doc>
        <source-position filename="src/data/grl-data.h" line="96"/>
        <return-value transfer-ownership="full">
          <doc xml:space="preserve"
               filename="src/data/grl-data.c"
               line="125">a new data object.</doc>
          <type name="Data" c:type="GrlData*"/>
        </return-value>
      </constructor>
      <method name="add_binary"
              c:identifier="grl_data_add_binary"
              version="0.1.10">
        <doc xml:space="preserve"
             filename="src/data/grl-data.c"
             line="939">Appends a new binary value for @key in @data.</doc>
        <source-position filename="src/data/grl-data.h" line="150"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="data" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="src/data/grl-data.c"
                 line="941">data to append</doc>
            <type name="Data" c:type="GrlData*"/>
          </instance-parameter>
          <parameter name="key" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="src/data/grl-data.c"
                 line="942">key to append</doc>
            <type name="KeyID" c:type="GrlKeyID"/>
          </parameter>
          <parameter name="buf" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="src/data/grl-data.c"
                 line="943">the buffer containing the new value</doc>
            <type name="guint8" c:type="const guint8*"/>
          </parameter>
          <parameter name="size" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="src/data/grl-data.c"
                 line="944">size of buffer</doc>
            <type name="gsize" c:type="gsize"/>
          </parameter>
        </parameters>
      </method>
      <method name="add_boxed"
              c:identifier="grl_data_add_boxed"
              version="0.2.0">
        <doc xml:space="preserve"
             filename="src/data/grl-data.c"
             line="970">Appends a new boxed value for @key in @data.</doc>
        <source-position filename="src/data/grl-data.h" line="152"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="data" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="src/data/grl-data.c"
                 line="972">data to append</doc>
            <type name="Data" c:type="GrlData*"/>
          </instance-parameter>
          <parameter name="key" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="src/data/grl-data.c"
                 line="973">key to append</doc>
            <type name="KeyID" c:type="GrlKeyID"/>
          </parameter>
          <parameter name="boxed"
                     transfer-ownership="none"
                     nullable="1"
                     allow-none="1">
            <doc xml:space="preserve"
                 filename="src/data/grl-data.c"
                 line="974">the new value</doc>
            <type name="gpointer" c:type="gconstpointer"/>
          </parameter>
        </parameters>
      </method>
      <method name="add_float"
              c:identifier="grl_data_add_float"
              version="0.1.10">
        <doc xml:space="preserve"
             filename="src/data/grl-data.c"
             line="914">Appends a new float value for @key in @data.</doc>
        <source-position filename="src/data/grl-data.h" line="148"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="data" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="src/data/grl-data.c"
                 line="916">data to append</doc>
            <type name="Data" c:type="GrlData*"/>
          </instance-parameter>
          <parameter name="key" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="src/data/grl-data.c"
                 line="917">key to append</doc>
            <type name="KeyID" c:type="GrlKeyID"/>
          </parameter>
          <parameter name="floatvalue" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="src/data/grl-data.c"
                 line="918">the new value</doc>
            <type name="gfloat" c:type="gfloat"/>
          </parameter>
        </parameters>
      </method>
      <method name="add_for_id"
              c:identifier="grl_data_add_for_id"
              version="0.3.6">
        <doc xml:space="preserve"
             filename="src/data/grl-data.c"
             line="654">Appends the value associated with @key_name to @data. This @key_name is used to create
a new #GParamSpec instance, which is further used to create and register a key using
grl_registry_register_metadata_key().

A property key_name consists of segments consisting of ASCII letters and
digits, separated by either the '-' or '_' character. The first
character of a property key_name must be a letter. Key_names which violate these
rules lead to undefined behaviour.</doc>
        <source-position filename="src/data/grl-data.h" line="156"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="src/data/grl-data.c"
               line="669">TRUE if @value was added to @key_name, FALSE otherwise.</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <instance-parameter name="data" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="src/data/grl-data.c"
                 line="656">data to change</doc>
            <type name="Data" c:type="GrlData*"/>
          </instance-parameter>
          <parameter name="key_name" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="src/data/grl-data.c"
                 line="657">name of the key to change or add</doc>
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
          <parameter name="value" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="src/data/grl-data.c"
                 line="658">the new value</doc>
            <type name="GObject.Value" c:type="const GValue*"/>
          </parameter>
        </parameters>
      </method>
      <method name="add_int" c:identifier="grl_data_add_int" version="0.1.10">
        <doc xml:space="preserve"
             filename="src/data/grl-data.c"
             line="889">Appends a new int value for @key in @data.</doc>
        <source-position filename="src/data/grl-data.h" line="146"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="data" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="src/data/grl-data.c"
                 line="891">data to append</doc>
            <type name="Data" c:type="GrlData*"/>
          </instance-parameter>
          <parameter name="key" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="src/data/grl-data.c"
                 line="892">key to append</doc>
            <type name="KeyID" c:type="GrlKeyID"/>
          </parameter>
          <parameter name="intvalue" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="src/data/grl-data.c"
                 line="893">the new value</doc>
            <type name="gint" c:type="gint"/>
          </parameter>
        </parameters>
      </method>
      <method name="add_int64"
              c:identifier="grl_data_add_int64"
              version="0.2.12">
        <doc xml:space="preserve"
             filename="src/data/grl-data.c"
             line="996">Appends a new int64 value for @key in @data.</doc>
        <source-position filename="src/data/grl-data.h" line="154"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="data" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="src/data/grl-data.c"
                 line="998">data to append</doc>
            <type name="Data" c:type="GrlData*"/>
          </instance-parameter>
          <parameter name="key" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="src/data/grl-data.c"
                 line="999">key to append</doc>
            <type name="KeyID" c:type="GrlKeyID"/>
          </parameter>
          <parameter name="intvalue" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="src/data/grl-data.c"
                 line="1000">the new value</doc>
            <type name="gint64" c:type="gint64"/>
          </parameter>
        </parameters>
      </method>
      <method name="add_related_keys"
              c:identifier="grl_data_add_related_keys"
              version="0.1.10">
        <doc xml:space="preserve"
             filename="src/data/grl-data.c"
             line="814">Adds a new set of values into @data.

All keys in @prop must be related among them.

@data will take the ownership of @relkeys, so do not modify it.</doc>
        <source-position filename="src/data/grl-data.h" line="142"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="data" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="src/data/grl-data.c"
                 line="816">data to change</doc>
            <type name="Data" c:type="GrlData*"/>
          </instance-parameter>
          <parameter name="relkeys" transfer-ownership="full">
            <doc xml:space="preserve"
                 filename="src/data/grl-data.c"
                 line="817">a set of related properties with their values</doc>
            <type name="RelatedKeys" c:type="GrlRelatedKeys*"/>
          </parameter>
        </parameters>
      </method>
      <method name="add_string"
              c:identifier="grl_data_add_string"
              version="0.1.10">
        <doc xml:space="preserve"
             filename="src/data/grl-data.c"
             line="862">Appends a new string value for @key in @data.</doc>
        <source-position filename="src/data/grl-data.h" line="144"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="data" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="src/data/grl-data.c"
                 line="864">data to append</doc>
            <type name="Data" c:type="GrlData*"/>
          </instance-parameter>
          <parameter name="key" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="src/data/grl-data.c"
                 line="865">key to append</doc>
            <type name="KeyID" c:type="GrlKeyID"/>
          </parameter>
          <parameter name="strvalue" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="src/data/grl-data.c"
                 line="866">the new value</doc>
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
        </parameters>
      </method>
      <method name="dup" c:identifier="grl_data_dup" version="0.1.10">
        <doc xml:space="preserve"
             filename="src/data/grl-data.c"
             line="1285">Makes a deep copy of @data and all its contents.</doc>
        <source-position filename="src/data/grl-data.h" line="170"/>
        <return-value transfer-ownership="full">
          <doc xml:space="preserve"
               filename="src/data/grl-data.c"
               line="1291">a new #GrlData. Free it with #g_object_unref.</doc>
          <type name="Data" c:type="GrlData*"/>
        </return-value>
        <parameters>
          <instance-parameter name="data" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="src/data/grl-data.c"
                 line="1287">data to duplicate</doc>
            <type name="Data" c:type="GrlData*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get" c:identifier="grl_data_get" version="0.1.4">
        <doc xml:space="preserve"
             filename="src/data/grl-data.c"
             line="136">Get the first value from @data associated with @key.</doc>
        <source-position filename="src/data/grl-data.h" line="120"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="src/data/grl-data.c"
               line="143">a #GValue. This value should not be modified nor
freed by user.</doc>
          <type name="GObject.Value" c:type="const GValue*"/>
        </return-value>
        <parameters>
          <instance-parameter name="data" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="src/data/grl-data.c"
                 line="138">data to retrieve value</doc>
            <type name="Data" c:type="GrlData*"/>
          </instance-parameter>
          <parameter name="key" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="src/data/grl-data.c"
                 line="139">key to look up.</doc>
            <type name="KeyID" c:type="GrlKeyID"/>
          </parameter>
        </parameters>
      </method>
      <method name="get_binary"
              c:identifier="grl_data_get_binary"
              version="0.1.9">
        <doc xml:space="preserve"
             filename="src/data/grl-data.c"
             line="465">Returns the first binary value associated with @key from @data. If @key has
no first value, or value is not a gfloat, or @key is not in data, then %NULL
is returned.</doc>
        <source-position filename="src/data/grl-data.h" line="130"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="src/data/grl-data.c"
               line="475">buffer location associated with the @key, or %NULL in other case. If
successful @size will be set the to the buffer size.</doc>
          <type name="guint8" c:type="const guint8*"/>
        </return-value>
        <parameters>
          <instance-parameter name="data" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="src/data/grl-data.c"
                 line="467">data to inspect</doc>
            <type name="Data" c:type="GrlData*"/>
          </instance-parameter>
          <parameter name="key" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="src/data/grl-data.c"
                 line="468">key to use</doc>
            <type name="KeyID" c:type="GrlKeyID"/>
          </parameter>
          <parameter name="size"
                     direction="out"
                     caller-allocates="0"
                     transfer-ownership="full">
            <doc xml:space="preserve"
                 filename="src/data/grl-data.c"
                 line="469">location to store the buffer size</doc>
            <type name="gsize" c:type="gsize*"/>
          </parameter>
        </parameters>
      </method>
      <method name="get_boolean"
              c:identifier="grl_data_get_boolean"
              version="0.2.3">
        <source-position filename="src/data/grl-data.h" line="128"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="src/data/grl-data.c"
               line="407">the first boolean value associated with @key from @data. If @key has
no first value, or value is not a gboolean, or @key is not in the data, then
FALSE is returned</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <instance-parameter name="data" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="src/data/grl-data.c"
                 line="404">data to inspect</doc>
            <type name="Data" c:type="GrlData*"/>
          </instance-parameter>
          <parameter name="key" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="src/data/grl-data.c"
                 line="405">key to use</doc>
            <type name="KeyID" c:type="GrlKeyID"/>
          </parameter>
        </parameters>
      </method>
      <method name="get_boxed"
              c:identifier="grl_data_get_boxed"
              version="0.2.0">
        <doc xml:space="preserve"
             filename="src/data/grl-data.c"
             line="528">Returns the first boxed value associated with @key from @data. If @key has
no first value, that value is not of a boxed type, or @key is not in @data,
then %NULL is returned.</doc>
        <source-position filename="src/data/grl-data.h" line="132"/>
        <return-value transfer-ownership="none" nullable="1">
          <doc xml:space="preserve"
               filename="src/data/grl-data.c"
               line="537">the boxed instance associated with @key if
possible, or %NULL in other cases. The caller should not change nor free the
value.</doc>
          <type name="gpointer" c:type="gpointer"/>
        </return-value>
        <parameters>
          <instance-parameter name="data" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="src/data/grl-data.c"
                 line="530">data to inspect</doc>
            <type name="Data" c:type="GrlData*"/>
          </instance-parameter>
          <parameter name="key" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="src/data/grl-data.c"
                 line="531">key to use</doc>
            <type name="KeyID" c:type="GrlKeyID"/>
          </parameter>
        </parameters>
      </method>
      <method name="get_float"
              c:identifier="grl_data_get_float"
              version="0.1.5">
        <doc xml:space="preserve"
             filename="src/data/grl-data.c"
             line="348">Returns the first float value associated with @key from @data. If @key has no
first value, or value is not a gfloat, or @key is not in data, then 0 is
returned.</doc>
        <source-position filename="src/data/grl-data.h" line="126"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="src/data/grl-data.c"
               line="357">float value associated with @key, or 0 in other case.</doc>
          <type name="gfloat" c:type="gfloat"/>
        </return-value>
        <parameters>
          <instance-parameter name="data" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="src/data/grl-data.c"
                 line="350">data to inspect</doc>
            <type name="Data" c:type="GrlData*"/>
          </instance-parameter>
          <parameter name="key" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="src/data/grl-data.c"
                 line="351">key to use</doc>
            <type name="KeyID" c:type="GrlKeyID"/>
          </parameter>
        </parameters>
      </method>
      <method name="get_int" c:identifier="grl_data_get_int" version="0.1.4">
        <doc xml:space="preserve"
             filename="src/data/grl-data.c"
             line="294">Returns the first int value associated with @key from @data. If @key has no
first value, or value is not a gint, or @key is not in data, then 0 is
returned.</doc>
        <source-position filename="src/data/grl-data.h" line="124"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="src/data/grl-data.c"
               line="303">int value associated with @key, or 0 in other case.</doc>
          <type name="gint" c:type="gint"/>
        </return-value>
        <parameters>
          <instance-parameter name="data" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="src/data/grl-data.c"
                 line="296">data to inspect</doc>
            <type name="Data" c:type="GrlData*"/>
          </instance-parameter>
          <parameter name="key" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="src/data/grl-data.c"
                 line="297">key to use</doc>
            <type name="KeyID" c:type="GrlKeyID"/>
          </parameter>
        </parameters>
      </method>
      <method name="get_int64"
              c:identifier="grl_data_get_int64"
              version="0.2.12">
        <doc xml:space="preserve"
             filename="src/data/grl-data.c"
             line="584">Returns the first int64 value associated with @key from @data. If @key has no
first value, or value is not a gint, or @key is not in data, then 0 is
returned.</doc>
        <source-position filename="src/data/grl-data.h" line="134"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="src/data/grl-data.c"
               line="593">int value associated with @key, or 0 in other case.</doc>
          <type name="gint64" c:type="gint64"/>
        </return-value>
        <parameters>
          <instance-parameter name="data" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="src/data/grl-data.c"
                 line="586">data to inspect</doc>
            <type name="Data" c:type="GrlData*"/>
          </instance-parameter>
          <parameter name="key" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="src/data/grl-data.c"
                 line="587">key to use</doc>
            <type name="KeyID" c:type="GrlKeyID"/>
          </parameter>
        </parameters>
      </method>
      <method name="get_keys" c:identifier="grl_data_get_keys" version="0.1.4">
        <doc xml:space="preserve"
             filename="src/data/grl-data.c"
             line="772">Returns a list with keys contained in @data.</doc>
        <source-position filename="src/data/grl-data.h" line="140"/>
        <return-value transfer-ownership="container">
          <doc xml:space="preserve"
               filename="src/data/grl-data.c"
               line="778">an array with the
keys. The content of the list should not be modified or freed. Use
g_list_free() when done using the list.</doc>
          <type name="GLib.List" c:type="GList*">
            <type name="KeyID"/>
          </type>
        </return-value>
        <parameters>
          <instance-parameter name="data" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="src/data/grl-data.c"
                 line="774">data to inspect</doc>
            <type name="Data" c:type="GrlData*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_related_keys"
              c:identifier="grl_data_get_related_keys"
              version="0.1.10">
        <doc xml:space="preserve"
             filename="src/data/grl-data.c"
             line="1059">Returns a set containing the values for @key and related keys at position
@index from @data.

If user changes any of the values in the related keys, the changes will
become permanent.</doc>
        <source-position filename="src/data/grl-data.h" line="160"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="src/data/grl-data.c"
               line="1071">a #GrlRelatedKeys. Do not free it.</doc>
          <type name="RelatedKeys" c:type="GrlRelatedKeys*"/>
        </return-value>
        <parameters>
          <instance-parameter name="data" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="src/data/grl-data.c"
                 line="1061">a data</doc>
            <type name="Data" c:type="GrlData*"/>
          </instance-parameter>
          <parameter name="key" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="src/data/grl-data.c"
                 line="1062">a metadata key</doc>
            <type name="KeyID" c:type="GrlKeyID"/>
          </parameter>
          <parameter name="index" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="src/data/grl-data.c"
                 line="1063">element to retrieve, starting at 0</doc>
            <type name="guint" c:type="guint"/>
          </parameter>
        </parameters>
      </method>
      <method name="get_single_values_for_key"
              c:identifier="grl_data_get_single_values_for_key"
              version="0.1.13">
        <doc xml:space="preserve"
             filename="src/data/grl-data.c"
             line="1104">Returns all non-%NULL values for @key from @data. This ignores related keys.</doc>
        <source-position filename="src/data/grl-data.h" line="162"/>
        <return-value transfer-ownership="container">
          <doc xml:space="preserve"
               filename="src/data/grl-data.c"
               line="1111">a #GList with
values. Do not change or free the values. Free the list with #g_list_free.</doc>
          <type name="GLib.List" c:type="GList*">
            <type name="GObject.Value"/>
          </type>
        </return-value>
        <parameters>
          <instance-parameter name="data" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="src/data/grl-data.c"
                 line="1106">a data</doc>
            <type name="Data" c:type="GrlData*"/>
          </instance-parameter>
          <parameter name="key" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="src/data/grl-data.c"
                 line="1107">a metadata key</doc>
            <type name="KeyID" c:type="GrlKeyID"/>
          </parameter>
        </parameters>
      </method>
      <method name="get_single_values_for_key_string"
              c:identifier="grl_data_get_single_values_for_key_string"
              version="0.1.13">
        <doc xml:space="preserve"
             filename="src/data/grl-data.c"
             line="1146">Returns all non-%NULL values for @key from @data. @key must have been
registered as a string-type key. This ignores related keys.</doc>
        <source-position filename="src/data/grl-data.h" line="164"/>
        <return-value transfer-ownership="container">
          <doc xml:space="preserve"
               filename="src/data/grl-data.c"
               line="1154">a #GList with values. Do
not change or free the strings. Free the list with #g_list_free.</doc>
          <type name="GLib.List" c:type="GList*">
            <type name="utf8"/>
          </type>
        </return-value>
        <parameters>
          <instance-parameter name="data" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="src/data/grl-data.c"
                 line="1148">a data</doc>
            <type name="Data" c:type="GrlData*"/>
          </instance-parameter>
          <parameter name="key" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="src/data/grl-data.c"
                 line="1149">a metadata key</doc>
            <type name="KeyID" c:type="GrlKeyID"/>
          </parameter>
        </parameters>
      </method>
      <method name="get_string"
              c:identifier="grl_data_get_string"
              version="0.1.4">
        <doc xml:space="preserve"
             filename="src/data/grl-data.c"
             line="239">Returns the first string value associated with @key from @data. If @key has
no first value, or value is not string, or @key is not in @data, then %NULL
is returned.</doc>
        <source-position filename="src/data/grl-data.h" line="122"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="src/data/grl-data.c"
               line="248">string associated with @key, or %NULL in other case. Caller should
not change nor free the value.</doc>
          <type name="utf8" c:type="const gchar*"/>
        </return-value>
        <parameters>
          <instance-parameter name="data" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="src/data/grl-data.c"
                 line="241">data to inspect</doc>
            <type name="Data" c:type="GrlData*"/>
          </instance-parameter>
          <parameter name="key" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="src/data/grl-data.c"
                 line="242">key to use</doc>
            <type name="KeyID" c:type="GrlKeyID"/>
          </parameter>
        </parameters>
      </method>
      <method name="has_key" c:identifier="grl_data_has_key" version="0.1.4">
        <doc xml:space="preserve"
             filename="src/data/grl-data.c"
             line="737">Checks if @key is in @data.</doc>
        <source-position filename="src/data/grl-data.h" line="138"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="src/data/grl-data.c"
               line="744">%TRUE if @key is in @data, %FALSE in other case.</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <instance-parameter name="data" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="src/data/grl-data.c"
                 line="739">data to inspect</doc>
            <type name="Data" c:type="GrlData*"/>
          </instance-parameter>
          <parameter name="key" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="src/data/grl-data.c"
                 line="740">key to search</doc>
            <type name="KeyID" c:type="GrlKeyID"/>
          </parameter>
        </parameters>
      </method>
      <method name="length" c:identifier="grl_data_length" version="0.1.10">
        <doc xml:space="preserve"
             filename="src/data/grl-data.c"
             line="1021">Returns how many values @key or related keys have in @data: if @key has no
value, but a related key has, then it is counted as positive.

As example, let's think in three related keys, K1, K2 and K3, and then thinks
we have added several values for those keys, as:

  (V10, V20, V30), (V11, NULL, V31), (V12, NULL, V32)

Therefore, when invoking grl_data_length (data, K2) it will return 3:
considering K2 and the related keys (K1 and K3), there are 3 values.</doc>
        <source-position filename="src/data/grl-data.h" line="158"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="src/data/grl-data.c"
               line="1037">number of values</doc>
          <type name="guint" c:type="guint"/>
        </return-value>
        <parameters>
          <instance-parameter name="data" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="src/data/grl-data.c"
                 line="1023">a data</doc>
            <type name="Data" c:type="GrlData*"/>
          </instance-parameter>
          <parameter name="key" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="src/data/grl-data.c"
                 line="1024">a metadata key</doc>
            <type name="KeyID" c:type="GrlKeyID"/>
          </parameter>
        </parameters>
      </method>
      <method name="remove" c:identifier="grl_data_remove" version="0.1.4">
        <doc xml:space="preserve"
             filename="src/data/grl-data.c"
             line="718">Removes the first value for @key from @data. If there are other keys related
to @key their values will also be removed from @data.</doc>
        <source-position filename="src/data/grl-data.h" line="136"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="data" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="src/data/grl-data.c"
                 line="720">data to change</doc>
            <type name="Data" c:type="GrlData*"/>
          </instance-parameter>
          <parameter name="key" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="src/data/grl-data.c"
                 line="721">key to remove</doc>
            <type name="KeyID" c:type="GrlKeyID"/>
          </parameter>
        </parameters>
      </method>
      <method name="remove_nth"
              c:identifier="grl_data_remove_nth"
              version="0.1.10">
        <doc xml:space="preserve"
             filename="src/data/grl-data.c"
             line="1190">Removes the value at position @index for @key from @data. If there are other
keys related to @key, their values at position @index will also be removed
from @data.</doc>
        <source-position filename="src/data/grl-data.h" line="166"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="data" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="src/data/grl-data.c"
                 line="1192">a data</doc>
            <type name="Data" c:type="GrlData*"/>
          </instance-parameter>
          <parameter name="key" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="src/data/grl-data.c"
                 line="1193">a metadata key</doc>
            <type name="KeyID" c:type="GrlKeyID"/>
          </parameter>
          <parameter name="index" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="src/data/grl-data.c"
                 line="1194">index of key to be removed, starting at 0</doc>
            <type name="guint" c:type="guint"/>
          </parameter>
        </parameters>
      </method>
      <method name="set" c:identifier="grl_data_set" version="0.1.4">
        <doc xml:space="preserve"
             filename="src/data/grl-data.c"
             line="167">Sets the first value associated with @key in @data. If key already has a
value old value is freed and the new one is set.

Also, checks that @value is compliant with @key specification, modifying it
accordingly. For instance, if @key requires a number between 0 and 10, but
@value is outside this range, it will be adapted accordingly.</doc>
        <source-position filename="src/data/grl-data.h" line="98"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="data" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="src/data/grl-data.c"
                 line="169">data to modify</doc>
            <type name="Data" c:type="GrlData*"/>
          </instance-parameter>
          <parameter name="key" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="src/data/grl-data.c"
                 line="170">key to change or add</doc>
            <type name="KeyID" c:type="GrlKeyID"/>
          </parameter>
          <parameter name="value" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="src/data/grl-data.c"
                 line="171">the new value</doc>
            <type name="GObject.Value" c:type="const GValue*"/>
          </parameter>
        </parameters>
      </method>
      <method name="set_binary"
              c:identifier="grl_data_set_binary"
              version="0.1.9">
        <doc xml:space="preserve"
             filename="src/data/grl-data.c"
             line="430">Sets the first binary value associated with @key in @data. If @key already
has a first value old value is replaced by the new one.</doc>
        <source-position filename="src/data/grl-data.h" line="112"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="data" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="src/data/grl-data.c"
                 line="432">data to change</doc>
            <type name="Data" c:type="GrlData*"/>
          </instance-parameter>
          <parameter name="key" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="src/data/grl-data.c"
                 line="433">key to change or add</doc>
            <type name="KeyID" c:type="GrlKeyID"/>
          </parameter>
          <parameter name="buf" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="src/data/grl-data.c"
                 line="434">buffer holding the data</doc>
            <type name="guint8" c:type="const guint8*"/>
          </parameter>
          <parameter name="size" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="src/data/grl-data.c"
                 line="435">size of the buffer</doc>
            <type name="gsize" c:type="gsize"/>
          </parameter>
        </parameters>
      </method>
      <method name="set_boolean"
              c:identifier="grl_data_set_boolean"
              version="0.2.3">
        <doc xml:space="preserve"
             filename="src/data/grl-data.c"
             line="378">Sets the first boolean value associated with @key in @data. If @key already
has a first value, old value is replaced by the new one.</doc>
        <source-position filename="src/data/grl-data.h" line="110"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="data" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="src/data/grl-data.c"
                 line="380">data to change</doc>
            <type name="Data" c:type="GrlData*"/>
          </instance-parameter>
          <parameter name="key" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="src/data/grl-data.c"
                 line="381">key to change or add</doc>
            <type name="KeyID" c:type="GrlKeyID"/>
          </parameter>
          <parameter name="boolvalue" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="src/data/grl-data.c"
                 line="382">the new value</doc>
            <type name="gboolean" c:type="gboolean"/>
          </parameter>
        </parameters>
      </method>
      <method name="set_boxed"
              c:identifier="grl_data_set_boxed"
              version="0.2.0">
        <doc xml:space="preserve"
             filename="src/data/grl-data.c"
             line="502">Sets the first boxed value associated with @key in @data. If @key already
has a value, the old value is freed and the new one is set.</doc>
        <source-position filename="src/data/grl-data.h" line="114"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="data" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="src/data/grl-data.c"
                 line="504">data to modify</doc>
            <type name="Data" c:type="GrlData*"/>
          </instance-parameter>
          <parameter name="key" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="src/data/grl-data.c"
                 line="505">key to change or add</doc>
            <type name="KeyID" c:type="GrlKeyID"/>
          </parameter>
          <parameter name="boxed"
                     transfer-ownership="none"
                     nullable="1"
                     allow-none="1">
            <doc xml:space="preserve"
                 filename="src/data/grl-data.c"
                 line="506">the new value</doc>
            <type name="gpointer" c:type="gconstpointer"/>
          </parameter>
        </parameters>
      </method>
      <method name="set_float"
              c:identifier="grl_data_set_float"
              version="0.1.5">
        <doc xml:space="preserve"
             filename="src/data/grl-data.c"
             line="324">Sets the first float value associated with @key in @data. If @key already has
a first value old value is replaced by the new one.</doc>
        <source-position filename="src/data/grl-data.h" line="106"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="data" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="src/data/grl-data.c"
                 line="326">data to change</doc>
            <type name="Data" c:type="GrlData*"/>
          </instance-parameter>
          <parameter name="key" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="src/data/grl-data.c"
                 line="327">key to change or add</doc>
            <type name="KeyID" c:type="GrlKeyID"/>
          </parameter>
          <parameter name="floatvalue" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="src/data/grl-data.c"
                 line="328">the new value</doc>
            <type name="gfloat" c:type="gfloat"/>
          </parameter>
        </parameters>
      </method>
      <method name="set_for_id"
              c:identifier="grl_data_set_for_id"
              version="0.3.6">
        <doc xml:space="preserve"
             filename="src/data/grl-data.c"
             line="614">Sets the first value associated with @key_name in @data. This @key_name is used to create
a new #GParamSpec instance, which is further used to create and register a key using
grl_registry_register_metadata_key(). If @key_name already has a first @value, old
value is replaced by the new one.

A property key_name consists of segments consisting of ASCII letters and
digits, separated by either the '-' or '_' character. The first
character of a property key_name must be a letter. Key_names which violate these
rules lead to undefined behaviour.</doc>
        <source-position filename="src/data/grl-data.h" line="118"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="src/data/grl-data.c"
               line="630">TRUE if @value was set to @key_name, FALSE otherwise.</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <instance-parameter name="data" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="src/data/grl-data.c"
                 line="616">data to change</doc>
            <type name="Data" c:type="GrlData*"/>
          </instance-parameter>
          <parameter name="key_name" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="src/data/grl-data.c"
                 line="617">name of the key to change or add</doc>
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
          <parameter name="value" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="src/data/grl-data.c"
                 line="618">the new value</doc>
            <type name="GObject.Value" c:type="const GValue*"/>
          </parameter>
        </parameters>
      </method>
      <method name="set_int" c:identifier="grl_data_set_int" version="0.1.4">
        <doc xml:space="preserve"
             filename="src/data/grl-data.c"
             line="270">Sets the first int value associated with @key in @data. If @key already has a
first value old value is replaced by the new one.</doc>
        <source-position filename="src/data/grl-data.h" line="104"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="data" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="src/data/grl-data.c"
                 line="272">data to change</doc>
            <type name="Data" c:type="GrlData*"/>
          </instance-parameter>
          <parameter name="key" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="src/data/grl-data.c"
                 line="273">key to change or add</doc>
            <type name="KeyID" c:type="GrlKeyID"/>
          </parameter>
          <parameter name="intvalue" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="src/data/grl-data.c"
                 line="274">the new value</doc>
            <type name="gint" c:type="gint"/>
          </parameter>
        </parameters>
      </method>
      <method name="set_int64"
              c:identifier="grl_data_set_int64"
              version="0.2.12">
        <doc xml:space="preserve"
             filename="src/data/grl-data.c"
             line="560">Sets the first int64 value associated with @key in @data. If @key already has a
first value old value is replaced by the new one.</doc>
        <source-position filename="src/data/grl-data.h" line="116"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="data" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="src/data/grl-data.c"
                 line="562">data to change</doc>
            <type name="Data" c:type="GrlData*"/>
          </instance-parameter>
          <parameter name="key" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="src/data/grl-data.c"
                 line="563">key to change or add</doc>
            <type name="KeyID" c:type="GrlKeyID"/>
          </parameter>
          <parameter name="intvalue" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="src/data/grl-data.c"
                 line="564">the new value</doc>
            <type name="gint64" c:type="gint64"/>
          </parameter>
        </parameters>
      </method>
      <method name="set_related_keys"
              c:identifier="grl_data_set_related_keys"
              version="0.1.10">
        <doc xml:space="preserve"
             filename="src/data/grl-data.c"
             line="1234">Updates the values at position @index in @data with values in @relkeys.

@data will take ownership of @relkeys, so do not free it after invoking this
function.</doc>
        <source-position filename="src/data/grl-data.h" line="168"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="data" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="src/data/grl-data.c"
                 line="1236">a data</doc>
            <type name="Data" c:type="GrlData*"/>
          </instance-parameter>
          <parameter name="relkeys" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="src/data/grl-data.c"
                 line="1237">a set of related keys</doc>
            <type name="RelatedKeys" c:type="GrlRelatedKeys*"/>
          </parameter>
          <parameter name="index" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="src/data/grl-data.c"
                 line="1238">position to be updated, starting at 0</doc>
            <type name="guint" c:type="guint"/>
          </parameter>
        </parameters>
      </method>
      <method name="set_string"
              c:identifier="grl_data_set_string"
              version="0.1.4">
        <doc xml:space="preserve"
             filename="src/data/grl-data.c"
             line="210">Sets the first string value associated with @key in @data. If @key already
has a value old value is freed and the new one is set.</doc>
        <source-position filename="src/data/grl-data.h" line="100"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="data" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="src/data/grl-data.c"
                 line="212">data to modify</doc>
            <type name="Data" c:type="GrlData*"/>
          </instance-parameter>
          <parameter name="key" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="src/data/grl-data.c"
                 line="213">key to change or add</doc>
            <type name="KeyID" c:type="GrlKeyID"/>
          </parameter>
          <parameter name="strvalue" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="src/data/grl-data.c"
                 line="214">the new value</doc>
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
        </parameters>
      </method>
      <field name="parent">
        <type name="GObject.Object" c:type="GObject"/>
      </field>
      <field name="priv">
        <type name="DataPrivate" c:type="GrlDataPrivate*"/>
      </field>
      <field name="_grl_reserved">
        <array zero-terminated="0" fixed-size="8">
          <type name="gpointer" c:type="gpointer"/>
        </array>
      </field>
    </class>
    <record name="DataClass"
            c:type="GrlDataClass"
            glib:is-gtype-struct-for="Data">
      <doc xml:space="preserve"
           filename="src/data/grl-data.h"
           line="80">Grilo Data class</doc>
      <source-position filename="src/data/grl-data.h" line="92"/>
      <field name="parent_class">
        <doc xml:space="preserve"
             filename="src/data/grl-data.h"
             line="82">the parent class structure</doc>
        <type name="GObject.ObjectClass" c:type="GObjectClass"/>
      </field>
      <field name="_grl_reserved" readable="0" private="1">
        <array zero-terminated="0" fixed-size="16">
          <type name="gpointer" c:type="gpointer"/>
        </array>
      </field>
    </record>
    <record name="DataPrivate"
            c:type="GrlDataPrivate"
            disguised="1"
            opaque="1">
      <source-position filename="src/data/grl-data.h" line="67"/>
    </record>
    <function-macro name="ERROR" c:identifier="GRL_ERROR" introspectable="0">
      <doc xml:space="preserve"
           filename="src/grl-log.h"
           line="162">Output an error message in the default log domain.</doc>
      <source-position filename="src/grl-log.h" line="195"/>
      <parameters>
        <parameter name="...">
          <doc xml:space="preserve"
               filename="src/grl-log.h"
               line="164">printf-style message to output</doc>
        </parameter>
      </parameters>
    </function-macro>
    <function-macro name="INFO" c:identifier="GRL_INFO" introspectable="0">
      <doc xml:space="preserve"
           filename="src/grl-log.h"
           line="180">Output an informational message in the default log domain.</doc>
      <source-position filename="src/grl-log.h" line="201"/>
      <parameters>
        <parameter name="...">
          <doc xml:space="preserve"
               filename="src/grl-log.h"
               line="182">printf-style message to output</doc>
        </parameter>
      </parameters>
    </function-macro>
    <function-macro name="IS_CAPS"
                    c:identifier="GRL_IS_CAPS"
                    introspectable="0">
      <source-position filename="src/grl-caps.h" line="65"/>
      <parameters>
        <parameter name="obj">
        </parameter>
      </parameters>
    </function-macro>
    <function-macro name="IS_CAPS_CLASS"
                    c:identifier="GRL_IS_CAPS_CLASS"
                    introspectable="0">
      <source-position filename="src/grl-caps.h" line="66"/>
      <parameters>
        <parameter name="klass">
        </parameter>
      </parameters>
    </function-macro>
    <function-macro name="IS_CONFIG"
                    c:identifier="GRL_IS_CONFIG"
                    introspectable="0">
      <source-position filename="src/data/grl-config.h" line="52"/>
      <parameters>
        <parameter name="obj">
        </parameter>
      </parameters>
    </function-macro>
    <function-macro name="IS_CONFIG_CLASS"
                    c:identifier="GRL_IS_CONFIG_CLASS"
                    introspectable="0">
      <source-position filename="src/data/grl-config.h" line="56"/>
      <parameters>
        <parameter name="klass">
        </parameter>
      </parameters>
    </function-macro>
    <function-macro name="IS_DATA"
                    c:identifier="GRL_IS_DATA"
                    introspectable="0">
      <source-position filename="src/data/grl-data.h" line="51"/>
      <parameters>
        <parameter name="obj">
        </parameter>
      </parameters>
    </function-macro>
    <function-macro name="IS_DATA_CLASS"
                    c:identifier="GRL_IS_DATA_CLASS"
                    introspectable="0">
      <source-position filename="src/data/grl-data.h" line="55"/>
      <parameters>
        <parameter name="klass">
        </parameter>
      </parameters>
    </function-macro>
    <function-macro name="IS_MEDIA"
                    c:identifier="GRL_IS_MEDIA"
                    introspectable="0">
      <source-position filename="src/data/grl-media.h" line="49"/>
      <parameters>
        <parameter name="obj">
        </parameter>
      </parameters>
    </function-macro>
    <function-macro name="IS_MEDIA_CLASS"
                    c:identifier="GRL_IS_MEDIA_CLASS"
                    introspectable="0">
      <source-position filename="src/data/grl-media.h" line="53"/>
      <parameters>
        <parameter name="klass">
        </parameter>
      </parameters>
    </function-macro>
    <function-macro name="IS_OPERATION_OPTIONS"
                    c:identifier="GRL_IS_OPERATION_OPTIONS"
                    introspectable="0">
      <source-position filename="src/grl-operation-options.h" line="64"/>
      <parameters>
        <parameter name="obj">
        </parameter>
      </parameters>
    </function-macro>
    <function-macro name="IS_OPERATION_OPTIONS_CLASS"
                    c:identifier="GRL_IS_OPERATION_OPTIONS_CLASS"
                    introspectable="0">
      <source-position filename="src/grl-operation-options.h" line="65"/>
      <parameters>
        <parameter name="klass">
        </parameter>
      </parameters>
    </function-macro>
    <function-macro name="IS_PLUGIN"
                    c:identifier="GRL_IS_PLUGIN"
                    introspectable="0">
      <source-position filename="src/grl-plugin.h" line="54"/>
      <parameters>
        <parameter name="obj">
        </parameter>
      </parameters>
    </function-macro>
    <function-macro name="IS_PLUGIN_CLASS"
                    c:identifier="GRL_IS_PLUGIN_CLASS"
                    introspectable="0">
      <source-position filename="src/grl-plugin.h" line="63"/>
      <parameters>
        <parameter name="klass">
        </parameter>
      </parameters>
    </function-macro>
    <function-macro name="IS_REGISTRY"
                    c:identifier="GRL_IS_REGISTRY"
                    introspectable="0">
      <source-position filename="src/grl-registry.h" line="54"/>
      <parameters>
        <parameter name="obj">
        </parameter>
      </parameters>
    </function-macro>
    <function-macro name="IS_REGISTRY_CLASS"
                    c:identifier="GRL_IS_REGISTRY_CLASS"
                    introspectable="0">
      <source-position filename="src/grl-registry.h" line="63"/>
      <parameters>
        <parameter name="klass">
        </parameter>
      </parameters>
    </function-macro>
    <function-macro name="IS_RELATED_KEYS"
                    c:identifier="GRL_IS_RELATED_KEYS"
                    introspectable="0">
      <source-position filename="src/data/grl-related-keys.h" line="50"/>
      <parameters>
        <parameter name="obj">
        </parameter>
      </parameters>
    </function-macro>
    <function-macro name="IS_RELATED_KEYS_CLASS"
                    c:identifier="GRL_IS_RELATED_KEYS_CLASS"
                    introspectable="0">
      <source-position filename="src/data/grl-related-keys.h" line="54"/>
      <parameters>
        <parameter name="klass">
        </parameter>
      </parameters>
    </function-macro>
    <function-macro name="IS_SOURCE"
                    c:identifier="GRL_IS_SOURCE"
                    introspectable="0">
      <source-position filename="src/grl-source.h" line="49"/>
      <parameters>
        <parameter name="obj">
        </parameter>
      </parameters>
    </function-macro>
    <function-macro name="IS_SOURCE_CLASS"
                    c:identifier="GRL_IS_SOURCE_CLASS"
                    introspectable="0">
      <source-position filename="src/grl-source.h" line="58"/>
      <parameters>
        <parameter name="klass">
        </parameter>
      </parameters>
    </function-macro>
    <constant name="KEYID_FORMAT" value="u" c:type="GRL_KEYID_FORMAT">
      <source-position filename="src/grl-metadata-key.h" line="38"/>
      <type name="utf8" c:type="gchar*"/>
    </constant>
    <function-macro name="LOG" c:identifier="GRL_LOG" introspectable="0">
      <doc xml:space="preserve"
           filename="src/grl-log.h"
           line="114">Outputs a debugging message. This is the most general macro for outputting
debugging messages. You will probably want to use one of the ones described
below.</doc>
      <source-position filename="src/grl-log.h" line="126"/>
      <parameters>
        <parameter name="domain">
          <doc xml:space="preserve"
               filename="src/grl-log.h"
               line="116">the log domain to use</doc>
        </parameter>
        <parameter name="level">
          <doc xml:space="preserve"
               filename="src/grl-log.h"
               line="117">the severity of the message</doc>
        </parameter>
        <parameter name="...">
          <doc xml:space="preserve"
               filename="src/grl-log.h"
               line="118">A printf-style message to output</doc>
        </parameter>
      </parameters>
    </function-macro>
    <function-macro name="LOG_DOMAIN"
                    c:identifier="GRL_LOG_DOMAIN"
                    introspectable="0">
      <doc xml:space="preserve"
           filename="src/grl-log.h"
           line="67">Defines a GrlLogDomain variable.</doc>
      <source-position filename="src/grl-log.h" line="73"/>
      <parameters>
        <parameter name="domain">
          <doc xml:space="preserve"
               filename="src/grl-log.h"
               line="69">the log domain</doc>
        </parameter>
      </parameters>
    </function-macro>
    <function-macro name="LOG_DOMAIN_EXTERN"
                    c:identifier="GRL_LOG_DOMAIN_EXTERN"
                    introspectable="0">
      <doc xml:space="preserve"
           filename="src/grl-log.h"
           line="75">Declares a GrlLogDomain variable as extern. Use in header files.</doc>
      <source-position filename="src/grl-log.h" line="81"/>
      <parameters>
        <parameter name="domain">
          <doc xml:space="preserve"
               filename="src/grl-log.h"
               line="77">the log domain</doc>
        </parameter>
      </parameters>
    </function-macro>
    <function-macro name="LOG_DOMAIN_FREE"
                    c:identifier="GRL_LOG_DOMAIN_FREE"
                    introspectable="0">
      <doc xml:space="preserve"
           filename="src/grl-log.h"
           line="103">Free a previously allocated #GrlLogDomain.</doc>
      <source-position filename="src/grl-log.h" line="109"/>
      <parameters>
        <parameter name="domain">
          <doc xml:space="preserve"
               filename="src/grl-log.h"
               line="105">the log domain to free.</doc>
        </parameter>
      </parameters>
    </function-macro>
    <function-macro name="LOG_DOMAIN_INIT"
                    c:identifier="GRL_LOG_DOMAIN_INIT"
                    introspectable="0">
      <doc xml:space="preserve"
           filename="src/grl-log.h"
           line="91">Creates a new #GrlLogDomain with the given name.</doc>
      <source-position filename="src/grl-log.h" line="98"/>
      <parameters>
        <parameter name="domain">
          <doc xml:space="preserve"
               filename="src/grl-log.h"
               line="93">the log domain to initialize.</doc>
        </parameter>
        <parameter name="name">
          <doc xml:space="preserve"
               filename="src/grl-log.h"
               line="94">the name of the log domain.</doc>
        </parameter>
      </parameters>
    </function-macro>
    <function-macro name="LOG_DOMAIN_STATIC"
                    c:identifier="GRL_LOG_DOMAIN_STATIC"
                    introspectable="0">
      <doc xml:space="preserve"
           filename="src/grl-log.h"
           line="83">Defines a static GrlLogDomain variable.</doc>
      <source-position filename="src/grl-log.h" line="89"/>
      <parameters>
        <parameter name="domain">
          <doc xml:space="preserve"
               filename="src/grl-log.h"
               line="85">the log domain</doc>
        </parameter>
      </parameters>
    </function-macro>
    <record name="LogDomain" c:type="GrlLogDomain" disguised="1" opaque="1">
      <source-position filename="src/grl-log.h" line="63"/>
      <method name="free" c:identifier="grl_log_domain_free" version="0.1.7">
        <doc xml:space="preserve"
             filename="src/grl-log.c"
             line="144">Releases @domain.</doc>
        <source-position filename="src/grl-log.h" line="274"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="domain" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="src/grl-log.c"
                 line="146">a #GrlLogDomain</doc>
            <type name="LogDomain" c:type="GrlLogDomain*"/>
          </instance-parameter>
        </parameters>
      </method>
      <function name="new"
                c:identifier="grl_log_domain_new"
                version="0.1.7"
                introspectable="0">
        <source-position filename="src/grl-log.h" line="273"/>
        <return-value>
          <doc xml:space="preserve"
               filename="src/grl-log.c"
               line="98">The new log domain</doc>
          <type name="LogDomain" c:type="GrlLogDomain*"/>
        </return-value>
        <parameters>
          <parameter name="name" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="src/grl-log.c"
                 line="96">The name for the new log domain</doc>
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
        </parameters>
      </function>
    </record>
    <enumeration name="LogLevel" c:type="GrlLogLevel">
      <doc xml:space="preserve"
           filename="src/grl-log.h"
           line="39">Grilo log levels. Defines the level of verbosity selected in Grilo.</doc>
      <source-position filename="src/grl-log.h" line="60"/>
      <member name="none" value="0" c:identifier="GRL_LOG_LEVEL_NONE">
        <doc xml:space="preserve"
             filename="src/grl-log.h"
             line="41">Log level none</doc>
      </member>
      <member name="error" value="1" c:identifier="GRL_LOG_LEVEL_ERROR">
        <doc xml:space="preserve"
             filename="src/grl-log.h"
             line="42">Log on error</doc>
      </member>
      <member name="warning" value="2" c:identifier="GRL_LOG_LEVEL_WARNING">
        <doc xml:space="preserve"
             filename="src/grl-log.h"
             line="43">Log on warning</doc>
      </member>
      <member name="message" value="3" c:identifier="GRL_LOG_LEVEL_MESSAGE">
        <doc xml:space="preserve"
             filename="src/grl-log.h"
             line="44">Log on message</doc>
      </member>
      <member name="info" value="4" c:identifier="GRL_LOG_LEVEL_INFO">
        <doc xml:space="preserve"
             filename="src/grl-log.h"
             line="45">Log on info</doc>
      </member>
      <member name="debug" value="5" c:identifier="GRL_LOG_LEVEL_DEBUG">
        <doc xml:space="preserve"
             filename="src/grl-log.h"
             line="46">Log on debug</doc>
      </member>
      <member name="last" value="6" c:identifier="GRL_LOG_LEVEL_LAST">
        <doc xml:space="preserve"
             filename="src/grl-log.h"
             line="47">Last level of log</doc>
      </member>
    </enumeration>
    <function-macro name="MEDIA" c:identifier="GRL_MEDIA" introspectable="0">
      <source-position filename="src/data/grl-media.h" line="39"/>
      <parameters>
        <parameter name="obj">
        </parameter>
      </parameters>
    </function-macro>
    <function-macro name="MEDIA_CLASS"
                    c:identifier="GRL_MEDIA_CLASS"
                    introspectable="0">
      <source-position filename="src/data/grl-media.h" line="44"/>
      <parameters>
        <parameter name="klass">
        </parameter>
      </parameters>
    </function-macro>
    <function-macro name="MEDIA_GET_CLASS"
                    c:identifier="GRL_MEDIA_GET_CLASS"
                    introspectable="0">
      <source-position filename="src/data/grl-media.h" line="57"/>
      <parameters>
        <parameter name="obj">
        </parameter>
      </parameters>
    </function-macro>
    <function-macro name="MESSAGE"
                    c:identifier="GRL_MESSAGE"
                    introspectable="0">
      <doc xml:space="preserve"
           filename="src/grl-log.h"
           line="174">Output a logging message in the default log domain.</doc>
      <source-position filename="src/grl-log.h" line="199"/>
      <parameters>
        <parameter name="...">
          <doc xml:space="preserve"
               filename="src/grl-log.h"
               line="176">printf-style message to output</doc>
        </parameter>
      </parameters>
    </function-macro>
    <constant name="METADATA_KEY_ALBUM"
              value="1"
              c:type="GRL_METADATA_KEY_ALBUM">
      <source-position filename="src/grl-metadata-key.h" line="68"/>
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="METADATA_KEY_ALBUM_ARTIST"
              value="60"
              c:type="GRL_METADATA_KEY_ALBUM_ARTIST">
      <source-position filename="src/grl-metadata-key.h" line="127"/>
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="METADATA_KEY_ALBUM_DISC_NUMBER"
              value="58"
              c:type="GRL_METADATA_KEY_ALBUM_DISC_NUMBER">
      <source-position filename="src/grl-metadata-key.h" line="125"/>
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="METADATA_KEY_ARTIST"
              value="2"
              c:type="GRL_METADATA_KEY_ARTIST">
      <source-position filename="src/grl-metadata-key.h" line="69"/>
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="METADATA_KEY_AUDIO_TRACK"
              value="57"
              c:type="GRL_METADATA_KEY_AUDIO_TRACK">
      <source-position filename="src/grl-metadata-key.h" line="124"/>
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="METADATA_KEY_AUTHOR"
              value="3"
              c:type="GRL_METADATA_KEY_AUTHOR">
      <source-position filename="src/grl-metadata-key.h" line="70"/>
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="METADATA_KEY_BITRATE"
              value="4"
              c:type="GRL_METADATA_KEY_BITRATE">
      <source-position filename="src/grl-metadata-key.h" line="71"/>
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="METADATA_KEY_CAMERA_MODEL"
              value="35"
              c:type="GRL_METADATA_KEY_CAMERA_MODEL">
      <source-position filename="src/grl-metadata-key.h" line="102"/>
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="METADATA_KEY_CERTIFICATE"
              value="5"
              c:type="GRL_METADATA_KEY_CERTIFICATE">
      <source-position filename="src/grl-metadata-key.h" line="72"/>
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="METADATA_KEY_CHILDCOUNT"
              value="6"
              c:type="GRL_METADATA_KEY_CHILDCOUNT">
      <source-position filename="src/grl-metadata-key.h" line="73"/>
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="METADATA_KEY_CHILDCOUNT_UNKNOWN"
              value="-1"
              c:type="GRL_METADATA_KEY_CHILDCOUNT_UNKNOWN">
      <source-position filename="src/grl-definitions.h" line="39"/>
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="METADATA_KEY_COMPOSER"
              value="59"
              c:type="GRL_METADATA_KEY_COMPOSER">
      <source-position filename="src/grl-metadata-key.h" line="126"/>
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="METADATA_KEY_CREATION_DATE"
              value="34"
              c:type="GRL_METADATA_KEY_CREATION_DATE">
      <source-position filename="src/grl-metadata-key.h" line="101"/>
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="METADATA_KEY_DESCRIPTION"
              value="8"
              c:type="GRL_METADATA_KEY_DESCRIPTION">
      <source-position filename="src/grl-metadata-key.h" line="75"/>
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="METADATA_KEY_DIRECTOR"
              value="48"
              c:type="GRL_METADATA_KEY_DIRECTOR">
      <source-position filename="src/grl-metadata-key.h" line="115"/>
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="METADATA_KEY_DURATION"
              value="9"
              c:type="GRL_METADATA_KEY_DURATION">
      <source-position filename="src/grl-metadata-key.h" line="76"/>
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="METADATA_KEY_EPISODE"
              value="32"
              c:type="GRL_METADATA_KEY_EPISODE">
      <source-position filename="src/grl-metadata-key.h" line="99"/>
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="METADATA_KEY_EPISODE_TITLE"
              value="56"
              c:type="GRL_METADATA_KEY_EPISODE_TITLE">
      <source-position filename="src/grl-metadata-key.h" line="123"/>
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="METADATA_KEY_EXPOSURE_TIME"
              value="38"
              c:type="GRL_METADATA_KEY_EXPOSURE_TIME">
      <source-position filename="src/grl-metadata-key.h" line="105"/>
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="METADATA_KEY_EXTERNAL_PLAYER"
              value="10"
              c:type="GRL_METADATA_KEY_EXTERNAL_PLAYER">
      <source-position filename="src/grl-metadata-key.h" line="77"/>
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="METADATA_KEY_EXTERNAL_URL"
              value="11"
              c:type="GRL_METADATA_KEY_EXTERNAL_URL">
      <source-position filename="src/grl-metadata-key.h" line="78"/>
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="METADATA_KEY_FAVOURITE"
              value="43"
              c:type="GRL_METADATA_KEY_FAVOURITE">
      <source-position filename="src/grl-metadata-key.h" line="110"/>
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="METADATA_KEY_FLASH_USED"
              value="37"
              c:type="GRL_METADATA_KEY_FLASH_USED">
      <source-position filename="src/grl-metadata-key.h" line="104"/>
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="METADATA_KEY_FRAMERATE"
              value="12"
              c:type="GRL_METADATA_KEY_FRAMERATE">
      <source-position filename="src/grl-metadata-key.h" line="79"/>
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="METADATA_KEY_GENRE"
              value="13"
              c:type="GRL_METADATA_KEY_GENRE">
      <source-position filename="src/grl-metadata-key.h" line="80"/>
      <type name="gint" c:type="gint"/>
    </constant>
    <function-macro name="METADATA_KEY_GET_DESC"
                    c:identifier="GRL_METADATA_KEY_GET_DESC"
                    introspectable="0">
      <source-position filename="src/grl-metadata-key.h" line="35"/>
      <parameters>
        <parameter name="key">
        </parameter>
      </parameters>
    </function-macro>
    <function-macro name="METADATA_KEY_GET_ID"
                    c:identifier="GRL_METADATA_KEY_GET_ID"
                    introspectable="0">
      <source-position filename="src/grl-metadata-key.h" line="33"/>
      <parameters>
        <parameter name="key">
        </parameter>
      </parameters>
    </function-macro>
    <function-macro name="METADATA_KEY_GET_NAME"
                    c:identifier="GRL_METADATA_KEY_GET_NAME"
                    introspectable="0">
      <source-position filename="src/grl-metadata-key.h" line="34"/>
      <parameters>
        <parameter name="key">
        </parameter>
      </parameters>
    </function-macro>
    <function-macro name="METADATA_KEY_GET_TYPE"
                    c:identifier="GRL_METADATA_KEY_GET_TYPE"
                    introspectable="0">
      <source-position filename="src/grl-metadata-key.h" line="36"/>
      <parameters>
        <parameter name="key">
        </parameter>
      </parameters>
    </function-macro>
    <constant name="METADATA_KEY_HEIGHT"
              value="14"
              c:type="GRL_METADATA_KEY_HEIGHT">
      <source-position filename="src/grl-metadata-key.h" line="81"/>
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="METADATA_KEY_ID" value="15" c:type="GRL_METADATA_KEY_ID">
      <source-position filename="src/grl-metadata-key.h" line="82"/>
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="METADATA_KEY_INVALID"
              value="0"
              c:type="GRL_METADATA_KEY_INVALID">
      <source-position filename="src/grl-metadata-key.h" line="64"/>
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="METADATA_KEY_ISO_SPEED"
              value="39"
              c:type="GRL_METADATA_KEY_ISO_SPEED">
      <source-position filename="src/grl-metadata-key.h" line="106"/>
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="METADATA_KEY_KEYWORD"
              value="45"
              c:type="GRL_METADATA_KEY_KEYWORD">
      <source-position filename="src/grl-metadata-key.h" line="112"/>
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="METADATA_KEY_LAST_PLAYED"
              value="16"
              c:type="GRL_METADATA_KEY_LAST_PLAYED">
      <source-position filename="src/grl-metadata-key.h" line="83"/>
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="METADATA_KEY_LAST_POSITION"
              value="17"
              c:type="GRL_METADATA_KEY_LAST_POSITION">
      <source-position filename="src/grl-metadata-key.h" line="84"/>
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="METADATA_KEY_LICENSE"
              value="18"
              c:type="GRL_METADATA_KEY_LICENSE">
      <source-position filename="src/grl-metadata-key.h" line="85"/>
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="METADATA_KEY_LYRICS"
              value="19"
              c:type="GRL_METADATA_KEY_LYRICS">
      <source-position filename="src/grl-metadata-key.h" line="86"/>
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="METADATA_KEY_MB_ALBUM_ID"
              value="52"
              c:type="GRL_METADATA_KEY_MB_ALBUM_ID">
      <source-position filename="src/grl-metadata-key.h" line="119"/>
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="METADATA_KEY_MB_ARTIST_ID"
              value="54"
              c:type="GRL_METADATA_KEY_MB_ARTIST_ID">
      <source-position filename="src/grl-metadata-key.h" line="121"/>
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="METADATA_KEY_MB_RECORDING_ID"
              value="55"
              c:type="GRL_METADATA_KEY_MB_RECORDING_ID">
      <source-position filename="src/grl-metadata-key.h" line="122"/>
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="METADATA_KEY_MB_RELEASE_GROUP_ID"
              value="62"
              c:type="GRL_METADATA_KEY_MB_RELEASE_GROUP_ID">
      <source-position filename="src/grl-metadata-key.h" line="129"/>
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="METADATA_KEY_MB_RELEASE_ID"
              value="61"
              c:type="GRL_METADATA_KEY_MB_RELEASE_ID">
      <source-position filename="src/grl-metadata-key.h" line="128"/>
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="METADATA_KEY_MB_TRACK_ID"
              value="53"
              c:type="GRL_METADATA_KEY_MB_TRACK_ID">
      <source-position filename="src/grl-metadata-key.h" line="120"/>
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="METADATA_KEY_MIME"
              value="20"
              c:type="GRL_METADATA_KEY_MIME">
      <source-position filename="src/grl-metadata-key.h" line="87"/>
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="METADATA_KEY_MODIFICATION_DATE"
              value="41"
              c:type="GRL_METADATA_KEY_MODIFICATION_DATE">
      <source-position filename="src/grl-metadata-key.h" line="108"/>
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="METADATA_KEY_ORIENTATION"
              value="36"
              c:type="GRL_METADATA_KEY_ORIENTATION">
      <source-position filename="src/grl-metadata-key.h" line="103"/>
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="METADATA_KEY_ORIGINAL_TITLE"
              value="49"
              c:type="GRL_METADATA_KEY_ORIGINAL_TITLE">
      <source-position filename="src/grl-metadata-key.h" line="116"/>
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="METADATA_KEY_PERFORMER"
              value="46"
              c:type="GRL_METADATA_KEY_PERFORMER">
      <source-position filename="src/grl-metadata-key.h" line="113"/>
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="METADATA_KEY_PLAY_COUNT"
              value="21"
              c:type="GRL_METADATA_KEY_PLAY_COUNT">
      <source-position filename="src/grl-metadata-key.h" line="88"/>
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="METADATA_KEY_PRODUCER"
              value="47"
              c:type="GRL_METADATA_KEY_PRODUCER">
      <source-position filename="src/grl-metadata-key.h" line="114"/>
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="METADATA_KEY_PUBLICATION_DATE"
              value="7"
              c:type="GRL_METADATA_KEY_PUBLICATION_DATE">
      <source-position filename="src/grl-metadata-key.h" line="74"/>
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="METADATA_KEY_RATING"
              value="22"
              c:type="GRL_METADATA_KEY_RATING">
      <source-position filename="src/grl-metadata-key.h" line="89"/>
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="METADATA_KEY_REGION"
              value="44"
              c:type="GRL_METADATA_KEY_REGION">
      <source-position filename="src/grl-metadata-key.h" line="111"/>
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="METADATA_KEY_SEASON"
              value="31"
              c:type="GRL_METADATA_KEY_SEASON">
      <source-position filename="src/grl-metadata-key.h" line="98"/>
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="METADATA_KEY_SHOW"
              value="33"
              c:type="GRL_METADATA_KEY_SHOW">
      <source-position filename="src/grl-metadata-key.h" line="100"/>
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="METADATA_KEY_SITE"
              value="23"
              c:type="GRL_METADATA_KEY_SITE">
      <source-position filename="src/grl-metadata-key.h" line="90"/>
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="METADATA_KEY_SIZE"
              value="50"
              c:type="GRL_METADATA_KEY_SIZE">
      <source-position filename="src/grl-metadata-key.h" line="117"/>
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="METADATA_KEY_SOURCE"
              value="24"
              c:type="GRL_METADATA_KEY_SOURCE">
      <source-position filename="src/grl-metadata-key.h" line="91"/>
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="METADATA_KEY_START_TIME"
              value="42"
              c:type="GRL_METADATA_KEY_START_TIME">
      <source-position filename="src/grl-metadata-key.h" line="109"/>
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="METADATA_KEY_STUDIO"
              value="25"
              c:type="GRL_METADATA_KEY_STUDIO">
      <source-position filename="src/grl-metadata-key.h" line="92"/>
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="METADATA_KEY_THUMBNAIL"
              value="26"
              c:type="GRL_METADATA_KEY_THUMBNAIL">
      <source-position filename="src/grl-metadata-key.h" line="93"/>
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="METADATA_KEY_THUMBNAIL_BINARY"
              value="27"
              c:type="GRL_METADATA_KEY_THUMBNAIL_BINARY">
      <source-position filename="src/grl-metadata-key.h" line="94"/>
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="METADATA_KEY_TITLE"
              value="28"
              c:type="GRL_METADATA_KEY_TITLE">
      <source-position filename="src/grl-metadata-key.h" line="95"/>
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="METADATA_KEY_TITLE_FROM_FILENAME"
              value="51"
              c:type="GRL_METADATA_KEY_TITLE_FROM_FILENAME">
      <source-position filename="src/grl-metadata-key.h" line="118"/>
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="METADATA_KEY_TRACK_NUMBER"
              value="40"
              c:type="GRL_METADATA_KEY_TRACK_NUMBER">
      <source-position filename="src/grl-metadata-key.h" line="107"/>
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="METADATA_KEY_URL" value="29" c:type="GRL_METADATA_KEY_URL">
      <source-position filename="src/grl-metadata-key.h" line="96"/>
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="METADATA_KEY_WIDTH"
              value="30"
              c:type="GRL_METADATA_KEY_WIDTH">
      <source-position filename="src/grl-metadata-key.h" line="97"/>
      <type name="gint" c:type="gint"/>
    </constant>
    <class name="Media"
           c:symbol-prefix="media"
           c:type="GrlMedia"
           parent="Data"
           glib:type-name="GrlMedia"
           glib:get-type="grl_media_get_type"
           glib:type-struct="MediaClass">
      <source-position filename="src/data/grl-media.h" line="107"/>
      <constructor name="audio_new"
                   c:identifier="grl_media_audio_new"
                   version="0.1.4">
        <doc xml:space="preserve"
             filename="src/data/grl-media.c"
             line="152">Creates a new media audio object.</doc>
        <source-position filename="src/data/grl-media.h" line="439"/>
        <return-value transfer-ownership="full">
          <doc xml:space="preserve"
               filename="src/data/grl-media.c"
               line="157">a newly-allocated media audio.</doc>
          <type name="Media" c:type="GrlMedia*"/>
        </return-value>
      </constructor>
      <constructor name="container_new"
                   c:identifier="grl_media_container_new"
                   version="0.3.0">
        <doc xml:space="preserve"
             filename="src/data/grl-media.c"
             line="203">Creates a new media container object.</doc>
        <source-position filename="src/data/grl-media.h" line="445"/>
        <return-value transfer-ownership="full">
          <doc xml:space="preserve"
               filename="src/data/grl-media.c"
               line="208">a newly-allocated media container.</doc>
          <type name="Media" c:type="GrlMedia*"/>
        </return-value>
      </constructor>
      <constructor name="image_new"
                   c:identifier="grl_media_image_new"
                   version="0.1.4">
        <doc xml:space="preserve"
             filename="src/data/grl-media.c"
             line="186">Creates a new media image object.</doc>
        <source-position filename="src/data/grl-media.h" line="443"/>
        <return-value transfer-ownership="full">
          <doc xml:space="preserve"
               filename="src/data/grl-media.c"
               line="191">a newly-allocated media image.</doc>
          <type name="Media" c:type="GrlMedia*"/>
        </return-value>
      </constructor>
      <constructor name="new" c:identifier="grl_media_new">
        <doc xml:space="preserve"
             filename="src/data/grl-media.c"
             line="137">Creates a new data media object.</doc>
        <source-position filename="src/data/grl-media.h" line="437"/>
        <return-value transfer-ownership="full">
          <doc xml:space="preserve"
               filename="src/data/grl-media.c"
               line="142">a newly-allocated data media.</doc>
          <type name="Media" c:type="GrlMedia*"/>
        </return-value>
      </constructor>
      <constructor name="video_new"
                   c:identifier="grl_media_video_new"
                   version="0.1.4">
        <doc xml:space="preserve"
             filename="src/data/grl-media.c"
             line="169">Creates a new media video object.</doc>
        <source-position filename="src/data/grl-media.h" line="441"/>
        <return-value transfer-ownership="full">
          <doc xml:space="preserve"
               filename="src/data/grl-media.c"
               line="174">a newly-allocated media video.</doc>
          <type name="Media" c:type="GrlMedia*"/>
        </return-value>
      </constructor>
      <function name="unserialize"
                c:identifier="grl_media_unserialize"
                version="0.1.6">
        <doc xml:space="preserve"
             filename="src/data/grl-media.c"
             line="838">Unserializes a GrlMedia.</doc>
        <source-position filename="src/data/grl-media.h" line="465"/>
        <return-value transfer-ownership="full">
          <doc xml:space="preserve"
               filename="src/data/grl-media.c"
               line="844">the GrlMedia from the serial</doc>
          <type name="Media" c:type="GrlMedia*"/>
        </return-value>
        <parameters>
          <parameter name="serial" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="src/data/grl-media.c"
                 line="840">a serialized media</doc>
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
        </parameters>
      </function>
      <method name="add_artist"
              c:identifier="grl_media_add_artist"
              version="0.3.0">
        <doc xml:space="preserve"
             filename="src/data/grl-media.c"
             line="523">Adds a new artist to @media.</doc>
        <source-position filename="src/data/grl-media.h" line="257"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="media" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="src/data/grl-media.c"
                 line="525">the media instance</doc>
            <type name="Media" c:type="GrlMedia*"/>
          </instance-parameter>
          <parameter name="artist" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="src/data/grl-media.c"
                 line="526">an audio's artist</doc>
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
        </parameters>
      </method>
      <method name="add_author"
              c:identifier="grl_media_add_author"
              version="0.1.10">
        <doc xml:space="preserve"
             filename="src/data/grl-media.c"
             line="407">Adds a new author to @media.</doc>
        <source-position filename="src/data/grl-media.h" line="245"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="media" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="src/data/grl-media.c"
                 line="409">a #GrlMedia</doc>
            <type name="Media" c:type="GrlMedia*"/>
          </instance-parameter>
          <parameter name="author" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="src/data/grl-media.c"
                 line="410">an author for @media</doc>
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
        </parameters>
      </method>
      <method name="add_director"
              c:identifier="grl_media_add_director"
              version="0.3.0">
        <doc xml:space="preserve"
             filename="src/data/grl-media.c"
             line="627">Adds the director of the media</doc>
        <source-position filename="src/data/grl-media.h" line="269"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="media" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="src/data/grl-media.c"
                 line="629">a #GrlMedia</doc>
            <type name="Media" c:type="GrlMedia*"/>
          </instance-parameter>
          <parameter name="director" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="src/data/grl-media.c"
                 line="630">director of the movie</doc>
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
        </parameters>
      </method>
      <method name="add_external_player"
              c:identifier="grl_media_add_external_player"
              version="0.1.10">
        <doc xml:space="preserve"
             filename="src/data/grl-media.c"
             line="465">Adds a new external player to @media.</doc>
        <source-position filename="src/data/grl-media.h" line="251"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="media" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="src/data/grl-media.c"
                 line="467">a #GrlMedia</doc>
            <type name="Media" c:type="GrlMedia*"/>
          </instance-parameter>
          <parameter name="player" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="src/data/grl-media.c"
                 line="468">an external player for @media</doc>
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
        </parameters>
      </method>
      <method name="add_external_url"
              c:identifier="grl_media_add_external_url"
              version="0.1.10">
        <doc xml:space="preserve"
             filename="src/data/grl-media.c"
             line="484">Adds a new external url to @media.</doc>
        <source-position filename="src/data/grl-media.h" line="253"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="media" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="src/data/grl-media.c"
                 line="486">a #GrlMedia</doc>
            <type name="Media" c:type="GrlMedia*"/>
          </instance-parameter>
          <parameter name="url" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="src/data/grl-media.c"
                 line="487">an external url for @media</doc>
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
        </parameters>
      </method>
      <method name="add_genre"
              c:identifier="grl_media_add_genre"
              version="0.3.0">
        <doc xml:space="preserve"
             filename="src/data/grl-media.c"
             line="539">Adds a new genre to @media.</doc>
        <source-position filename="src/data/grl-media.h" line="259"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="media" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="src/data/grl-media.c"
                 line="541">the media instance</doc>
            <type name="Media" c:type="GrlMedia*"/>
          </instance-parameter>
          <parameter name="genre" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="src/data/grl-media.c"
                 line="542">an audio's genre</doc>
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
        </parameters>
      </method>
      <method name="add_keyword"
              c:identifier="grl_media_add_keyword"
              version="0.2.3">
        <doc xml:space="preserve"
             filename="src/data/grl-media.c"
             line="503">Adds the keyword describing the @media.</doc>
        <source-position filename="src/data/grl-media.h" line="255"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="media" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="src/data/grl-media.c"
                 line="505">a #GrlMedia</doc>
            <type name="Media" c:type="GrlMedia*"/>
          </instance-parameter>
          <parameter name="keyword" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="src/data/grl-media.c"
                 line="506">a keyword describing the media</doc>
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
        </parameters>
      </method>
      <method name="add_lyrics"
              c:identifier="grl_media_add_lyrics"
              version="0.3.0">
        <doc xml:space="preserve"
             filename="src/data/grl-media.c"
             line="555">Adds a new lyrics to @media.</doc>
        <source-position filename="src/data/grl-media.h" line="261"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="media" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="src/data/grl-media.c"
                 line="557">the media instance</doc>
            <type name="Media" c:type="GrlMedia*"/>
          </instance-parameter>
          <parameter name="lyrics" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="src/data/grl-media.c"
                 line="558">an audio's lyrics</doc>
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
        </parameters>
      </method>
      <method name="add_mb_artist_id"
              c:identifier="grl_media_add_mb_artist_id"
              version="0.3.0">
        <doc xml:space="preserve"
             filename="src/data/grl-media.c"
             line="571">Adds a new MusicBrainz artist id to @media.</doc>
        <source-position filename="src/data/grl-media.h" line="263"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="media" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="src/data/grl-media.c"
                 line="573">the media instance</doc>
            <type name="Media" c:type="GrlMedia*"/>
          </instance-parameter>
          <parameter name="mb_artist_id" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="src/data/grl-media.c"
                 line="574">a MusicBrainz artist identifier</doc>
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
        </parameters>
      </method>
      <method name="add_performer"
              c:identifier="grl_media_add_performer"
              version="0.3.0">
        <doc xml:space="preserve"
             filename="src/data/grl-media.c"
             line="589">Adds the actor performing in the movie.</doc>
        <source-position filename="src/data/grl-media.h" line="265"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="media" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="src/data/grl-media.c"
                 line="591">a #GrlMedia</doc>
            <type name="Media" c:type="GrlMedia*"/>
          </instance-parameter>
          <parameter name="performer" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="src/data/grl-media.c"
                 line="592">an actor performing in the movie</doc>
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
        </parameters>
      </method>
      <method name="add_producer"
              c:identifier="grl_media_add_producer"
              version="0.3.0">
        <doc xml:space="preserve"
             filename="src/data/grl-media.c"
             line="608">Adds the producer of the media.</doc>
        <source-position filename="src/data/grl-media.h" line="267"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="media" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="src/data/grl-media.c"
                 line="610">a #GrlMedia</doc>
            <type name="Media" c:type="GrlMedia*"/>
          </instance-parameter>
          <parameter name="producer" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="src/data/grl-media.c"
                 line="611">producer of the movie</doc>
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
        </parameters>
      </method>
      <method name="add_region_data"
              c:identifier="grl_media_add_region_data"
              version="0.2.3">
        <doc xml:space="preserve"
             filename="src/data/grl-media.c"
             line="1278">Adds regional publication and certification information for @region.</doc>
        <source-position filename="src/data/grl-media.h" line="139"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="media" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="src/data/grl-media.c"
                 line="1280">a #GrlMedia</doc>
            <type name="Media" c:type="GrlMedia*"/>
          </instance-parameter>
          <parameter name="region" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="src/data/grl-media.c"
                 line="1281">the region's ISO-3166-1 code</doc>
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
          <parameter name="publication_date" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="src/data/grl-media.c"
                 line="1282">the publication date</doc>
            <type name="GLib.DateTime" c:type="const GDateTime*"/>
          </parameter>
          <parameter name="certificate" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="src/data/grl-media.c"
                 line="1283">the age certification</doc>
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
        </parameters>
      </method>
      <method name="add_thumbnail"
              c:identifier="grl_media_add_thumbnail"
              version="0.1.10">
        <doc xml:space="preserve"
             filename="src/data/grl-media.c"
             line="424">Adds a new thumbnail to @media.</doc>
        <source-position filename="src/data/grl-media.h" line="247"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="media" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="src/data/grl-media.c"
                 line="426">a #GrlMedia</doc>
            <type name="Media" c:type="GrlMedia*"/>
          </instance-parameter>
          <parameter name="thumbnail" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="src/data/grl-media.c"
                 line="427">a thumbnail for @media</doc>
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
        </parameters>
      </method>
      <method name="add_thumbnail_binary"
              c:identifier="grl_media_add_thumbnail_binary"
              version="0.1.10">
        <doc xml:space="preserve"
             filename="src/data/grl-media.c"
             line="441">Adds a new thumbnail to @media.</doc>
        <source-position filename="src/data/grl-media.h" line="249"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="media" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="src/data/grl-media.c"
                 line="443">a #GrlMedia</doc>
            <type name="Media" c:type="GrlMedia*"/>
          </instance-parameter>
          <parameter name="thumbnail" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="src/data/grl-media.c"
                 line="444">a buffer containing the thumbnail for @media</doc>
            <type name="guint8" c:type="const guint8*"/>
          </parameter>
          <parameter name="size" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="src/data/grl-media.c"
                 line="445">size of buffer</doc>
            <type name="gsize" c:type="gsize"/>
          </parameter>
        </parameters>
      </method>
      <method name="add_url_data"
              c:identifier="grl_media_add_url_data"
              version="0.3.0">
        <doc xml:space="preserve"
             filename="src/data/grl-media.c"
             line="361">Sets all the keys related with the URL of a media resource and adds it to
@media (useful for resources with more than one URL).</doc>
        <source-position filename="src/data/grl-media.h" line="243"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="media" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="src/data/grl-media.c"
                 line="363">a #GrlMedia</doc>
            <type name="Media" c:type="GrlMedia*"/>
          </instance-parameter>
          <parameter name="url" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="src/data/grl-media.c"
                 line="364">a media's URL</doc>
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
          <parameter name="mime" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="src/data/grl-media.c"
                 line="365">th @url mime type</doc>
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
          <parameter name="bitrate" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="src/data/grl-media.c"
                 line="366">the @url bitrate, or -1 to ignore</doc>
            <type name="gint" c:type="gint"/>
          </parameter>
          <parameter name="framerate" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="src/data/grl-media.c"
                 line="367">media framerate, or -1 to ignore</doc>
            <type name="gfloat" c:type="gfloat"/>
          </parameter>
          <parameter name="width" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="src/data/grl-media.c"
                 line="368">media width, or -1 to ignore</doc>
            <type name="gint" c:type="gint"/>
          </parameter>
          <parameter name="height" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="src/data/grl-media.c"
                 line="369">media height, or -1 to ignore</doc>
            <type name="gint" c:type="gint"/>
          </parameter>
        </parameters>
      </method>
      <method name="get_album"
              c:identifier="grl_media_get_album"
              version="0.3.0">
        <source-position filename="src/data/grl-media.h" line="379"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="src/data/grl-media.c"
               line="3225">the album of the media</doc>
          <type name="utf8" c:type="const gchar*"/>
        </return-value>
        <parameters>
          <instance-parameter name="media" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="src/data/grl-media.c"
                 line="3223">the media instance</doc>
            <type name="Media" c:type="GrlMedia*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_album_artist"
              c:identifier="grl_media_get_album_artist"
              version="0.3.1">
        <source-position filename="src/data/grl-media.h" line="381"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="src/data/grl-media.c"
               line="3240">the main artist of the album of the media</doc>
          <type name="utf8" c:type="const gchar*"/>
        </return-value>
        <parameters>
          <instance-parameter name="media" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="src/data/grl-media.c"
                 line="3238">the media instance</doc>
            <type name="Media" c:type="GrlMedia*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_album_disc_number"
              c:identifier="grl_media_get_album_disc_number"
              version="0.3.1">
        <source-position filename="src/data/grl-media.h" line="383"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="src/data/grl-media.c"
               line="3255">the disc number of the media for multi-disc album sets.</doc>
          <type name="gint" c:type="gint"/>
        </return-value>
        <parameters>
          <instance-parameter name="media" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="src/data/grl-media.c"
                 line="3253">the media instance</doc>
            <type name="Media" c:type="GrlMedia*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_artist"
              c:identifier="grl_media_get_artist"
              version="0.3.0">
        <source-position filename="src/data/grl-media.h" line="385"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="src/data/grl-media.c"
               line="3270">the artist of the media</doc>
          <type name="utf8" c:type="const gchar*"/>
        </return-value>
        <parameters>
          <instance-parameter name="media" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="src/data/grl-media.c"
                 line="3268">the media instance</doc>
            <type name="Media" c:type="GrlMedia*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_artist_nth"
              c:identifier="grl_media_get_artist_nth"
              version="0.3.0">
        <source-position filename="src/data/grl-media.h" line="387"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="src/data/grl-media.c"
               line="3286">the n-th artist of the media</doc>
          <type name="utf8" c:type="const gchar*"/>
        </return-value>
        <parameters>
          <instance-parameter name="media" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="src/data/grl-media.c"
                 line="3283">the media instance</doc>
            <type name="Media" c:type="GrlMedia*"/>
          </instance-parameter>
          <parameter name="index" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="src/data/grl-media.c"
                 line="3284">element to retrieve, starting at 0</doc>
            <type name="guint" c:type="guint"/>
          </parameter>
        </parameters>
      </method>
      <method name="get_author"
              c:identifier="grl_media_get_author"
              version="0.1.4">
        <source-position filename="src/data/grl-media.h" line="279"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="src/data/grl-media.c"
               line="2294">the media's author</doc>
          <type name="utf8" c:type="const gchar*"/>
        </return-value>
        <parameters>
          <instance-parameter name="media" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="src/data/grl-media.c"
                 line="2292">the media object</doc>
            <type name="Media" c:type="GrlMedia*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_author_nth"
              c:identifier="grl_media_get_author_nth"
              version="0.1.10">
        <source-position filename="src/data/grl-media.h" line="281"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="src/data/grl-media.c"
               line="2311">the n-th media's author.</doc>
          <type name="utf8" c:type="const gchar*"/>
        </return-value>
        <parameters>
          <instance-parameter name="media" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="src/data/grl-media.c"
                 line="2308">the media object</doc>
            <type name="Media" c:type="GrlMedia*"/>
          </instance-parameter>
          <parameter name="index" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="src/data/grl-media.c"
                 line="2309">element to retrieve</doc>
            <type name="guint" c:type="guint"/>
          </parameter>
        </parameters>
      </method>
      <method name="get_bitrate"
              c:identifier="grl_media_get_bitrate"
              version="0.3.0">
        <source-position filename="src/data/grl-media.h" line="354"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="src/data/grl-media.c"
               line="3005">the bitrate of the media</doc>
          <type name="gint" c:type="gint"/>
        </return-value>
        <parameters>
          <instance-parameter name="media" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="src/data/grl-media.c"
                 line="3003">the media instance</doc>
            <type name="Media" c:type="GrlMedia*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_camera_model"
              c:identifier="grl_media_get_camera_model"
              version="0.3.0">
        <source-position filename="src/data/grl-media.h" line="423"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="src/data/grl-media.c"
               line="3635">model of camera used to take picture</doc>
          <type name="utf8" c:type="const gchar*"/>
        </return-value>
        <parameters>
          <instance-parameter name="media" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="src/data/grl-media.c"
                 line="3633">the media instance</doc>
            <type name="Media" c:type="GrlMedia*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_certificate"
              c:identifier="grl_media_get_certificate"
              version="0.1.6">
        <doc xml:space="preserve"
             filename="src/data/grl-media.c"
             line="2854">Returns the media's first age certificate.
This should usually be the media's most relevant
age certificate. Use grl_media_get_region_data_nth() to
get other age certificates.</doc>
        <source-position filename="src/data/grl-media.h" line="338"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="src/data/grl-media.c"
               line="2863">the media's age certification</doc>
          <type name="utf8" c:type="const gchar*"/>
        </return-value>
        <parameters>
          <instance-parameter name="media" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="src/data/grl-media.c"
                 line="2856">the media object</doc>
            <type name="Media" c:type="GrlMedia*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_childcount"
              c:identifier="grl_media_get_childcount"
              version="0.3.0">
        <doc xml:space="preserve"
             filename="src/data/grl-media.c"
             line="3714">Number of children of this container.</doc>
        <source-position filename="src/data/grl-media.h" line="433"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="src/data/grl-media.c"
               line="3720">number of children, or #GRL_METADATA_KEY_CHILDCOUNT_UNKNOWN if
unknown.</doc>
          <type name="gint" c:type="gint"/>
        </return-value>
        <parameters>
          <instance-parameter name="media" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="src/data/grl-media.c"
                 line="3716">the media container instance</doc>
            <type name="Media" c:type="GrlMedia*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_composer"
              c:identifier="grl_media_get_composer"
              version="0.3.1">
        <source-position filename="src/data/grl-media.h" line="389"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="src/data/grl-media.c"
               line="3313">the composer of the media</doc>
          <type name="utf8" c:type="const gchar*"/>
        </return-value>
        <parameters>
          <instance-parameter name="media" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="src/data/grl-media.c"
                 line="3311">the media instance</doc>
            <type name="Media" c:type="GrlMedia*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_composer_nth"
              c:identifier="grl_media_get_composer_nth"
              version="0.3.1">
        <source-position filename="src/data/grl-media.h" line="391"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="src/data/grl-media.c"
               line="3329">the n-th composer of the media</doc>
          <type name="utf8" c:type="const gchar*"/>
        </return-value>
        <parameters>
          <instance-parameter name="media" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="src/data/grl-media.c"
                 line="3326">the media instance</doc>
            <type name="Media" c:type="GrlMedia*"/>
          </instance-parameter>
          <parameter name="index" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="src/data/grl-media.c"
                 line="3327">element to retrieve, starting at 0</doc>
            <type name="guint" c:type="guint"/>
          </parameter>
        </parameters>
      </method>
      <method name="get_creation_date"
              c:identifier="grl_media_get_creation_date"
              version="0.2.0">
        <source-position filename="src/data/grl-media.h" line="314"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="src/data/grl-media.c"
               line="2637">date when media was created (owned by @media).</doc>
          <type name="GLib.DateTime" c:type="GDateTime*"/>
        </return-value>
        <parameters>
          <instance-parameter name="media" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="src/data/grl-media.c"
                 line="2635">the media</doc>
            <type name="Media" c:type="GrlMedia*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_description"
              c:identifier="grl_media_get_description"
              version="0.1.4">
        <source-position filename="src/data/grl-media.h" line="285"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="src/data/grl-media.c"
               line="2354">the media's description</doc>
          <type name="utf8" c:type="const gchar*"/>
        </return-value>
        <parameters>
          <instance-parameter name="media" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="src/data/grl-media.c"
                 line="2352">the media object</doc>
            <type name="Media" c:type="GrlMedia*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_director"
              c:identifier="grl_media_get_director"
              version="0.3.0">
        <source-position filename="src/data/grl-media.h" line="417"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="src/data/grl-media.c"
               line="3573">the director of the movie (owned by @media).</doc>
          <type name="utf8" c:type="const gchar*"/>
        </return-value>
        <parameters>
          <instance-parameter name="media" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="src/data/grl-media.c"
                 line="3571">a #GrlMedia</doc>
            <type name="Media" c:type="GrlMedia*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_director_nth"
              c:identifier="grl_media_get_director_nth"
              version="0.3.0">
        <source-position filename="src/data/grl-media.h" line="419"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="src/data/grl-media.c"
               line="3590">the director of the movie (owned by @media).</doc>
          <type name="utf8" c:type="const gchar*"/>
        </return-value>
        <parameters>
          <instance-parameter name="media" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="src/data/grl-media.c"
                 line="3587">a #GrlMedia</doc>
            <type name="Media" c:type="GrlMedia*"/>
          </instance-parameter>
          <parameter name="index" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="src/data/grl-media.c"
                 line="3588">element to retrieve</doc>
            <type name="guint" c:type="guint"/>
          </parameter>
        </parameters>
      </method>
      <method name="get_duration"
              c:identifier="grl_media_get_duration"
              version="0.1.4">
        <source-position filename="src/data/grl-media.h" line="299"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="src/data/grl-media.c"
               line="2499">the media's duration in seconds</doc>
          <type name="gint" c:type="gint"/>
        </return-value>
        <parameters>
          <instance-parameter name="media" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="src/data/grl-media.c"
                 line="2497">the media object</doc>
            <type name="Media" c:type="GrlMedia*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_episode"
              c:identifier="grl_media_get_episode"
              version="0.3.0">
        <source-position filename="src/data/grl-media.h" line="403"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="src/data/grl-media.c"
               line="3434">the episode number of the media</doc>
          <type name="gint" c:type="gint"/>
        </return-value>
        <parameters>
          <instance-parameter name="media" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="src/data/grl-media.c"
                 line="3432">the media instance</doc>
            <type name="Media" c:type="GrlMedia*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_episode_title"
              c:identifier="grl_media_get_episode_title"
              version="0.3.0">
        <source-position filename="src/data/grl-media.h" line="405"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="src/data/grl-media.c"
               line="3449">the title of the episode</doc>
          <type name="utf8" c:type="const gchar*"/>
        </return-value>
        <parameters>
          <instance-parameter name="media" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="src/data/grl-media.c"
                 line="3447">the media instance</doc>
            <type name="Media" c:type="GrlMedia*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_exposure_time"
              c:identifier="grl_media_get_exposure_time"
              version="0.3.0">
        <source-position filename="src/data/grl-media.h" line="427"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="src/data/grl-media.c"
               line="3670">picture's exposure time</doc>
          <type name="gfloat" c:type="gfloat"/>
        </return-value>
        <parameters>
          <instance-parameter name="media" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="src/data/grl-media.c"
                 line="3668">the media instance</doc>
            <type name="Media" c:type="GrlMedia*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_external_url"
              c:identifier="grl_media_get_external_url"
              version="0.1.6">
        <source-position filename="src/data/grl-media.h" line="332"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="src/data/grl-media.c"
               line="2797">URL of an external location
where the user play the media.</doc>
          <type name="utf8" c:type="const gchar*"/>
        </return-value>
        <parameters>
          <instance-parameter name="media" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="src/data/grl-media.c"
                 line="2795">the media object</doc>
            <type name="Media" c:type="GrlMedia*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_external_url_nth"
              c:identifier="grl_media_get_external_url_nth"
              version="0.1.10">
        <source-position filename="src/data/grl-media.h" line="334"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="src/data/grl-media.c"
               line="2815">the n-th media's external location where the user can play it.</doc>
          <type name="utf8" c:type="const gchar*"/>
        </return-value>
        <parameters>
          <instance-parameter name="media" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="src/data/grl-media.c"
                 line="2812">the media object</doc>
            <type name="Media" c:type="GrlMedia*"/>
          </instance-parameter>
          <parameter name="index" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="src/data/grl-media.c"
                 line="2813">element to retrieve</doc>
            <type name="guint" c:type="guint"/>
          </parameter>
        </parameters>
      </method>
      <method name="get_favourite"
              c:identifier="grl_media_get_favourite"
              version="0.2.3">
        <source-position filename="src/data/grl-media.h" line="344"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="src/data/grl-media.c"
               line="2912">whether the media is favourite or not</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <instance-parameter name="media" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="src/data/grl-media.c"
                 line="2910">the media object</doc>
            <type name="Media" c:type="GrlMedia*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_flash_used"
              c:identifier="grl_media_get_flash_used"
              version="0.3.0">
        <source-position filename="src/data/grl-media.h" line="425"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="src/data/grl-media.c"
               line="3651">whether the flash was used.

See
https://gnome.pages.gitlab.gnome.org/tracker/nmm-ontology.html#nmm:Flash</doc>
          <type name="utf8" c:type="const gchar*"/>
        </return-value>
        <parameters>
          <instance-parameter name="media" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="src/data/grl-media.c"
                 line="3649">the media instance</doc>
            <type name="Media" c:type="GrlMedia*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_framerate"
              c:identifier="grl_media_get_framerate"
              version="0.3.0">
        <source-position filename="src/data/grl-media.h" line="399"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="src/data/grl-media.c"
               line="3404">the framerate of the media</doc>
          <type name="gfloat" c:type="gfloat"/>
        </return-value>
        <parameters>
          <instance-parameter name="media" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="src/data/grl-media.c"
                 line="3402">the media instance</doc>
            <type name="Media" c:type="GrlMedia*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_genre"
              c:identifier="grl_media_get_genre"
              version="0.3.0">
        <source-position filename="src/data/grl-media.h" line="375"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="src/data/grl-media.c"
               line="3184">the genre of the media</doc>
          <type name="utf8" c:type="const gchar*"/>
        </return-value>
        <parameters>
          <instance-parameter name="media" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="src/data/grl-media.c"
                 line="3182">the media instance</doc>
            <type name="Media" c:type="GrlMedia*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_genre_nth"
              c:identifier="grl_media_get_genre_nth"
              version="0.3.0">
        <source-position filename="src/data/grl-media.h" line="377"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="src/data/grl-media.c"
               line="3200">the n-th genre of the media</doc>
          <type name="utf8" c:type="const gchar*"/>
        </return-value>
        <parameters>
          <instance-parameter name="media" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="src/data/grl-media.c"
                 line="3197">the media instance</doc>
            <type name="Media" c:type="GrlMedia*"/>
          </instance-parameter>
          <parameter name="index" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="src/data/grl-media.c"
                 line="3198">element to retrieve, starting at 0</doc>
            <type name="guint" c:type="guint"/>
          </parameter>
        </parameters>
      </method>
      <method name="get_height"
              c:identifier="grl_media_get_height"
              version="0.3.0">
        <source-position filename="src/data/grl-media.h" line="397"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="src/data/grl-media.c"
               line="3389">the height of the media</doc>
          <type name="gint" c:type="gint"/>
        </return-value>
        <parameters>
          <instance-parameter name="media" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="src/data/grl-media.c"
                 line="3387">the media instance</doc>
            <type name="Media" c:type="GrlMedia*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_id" c:identifier="grl_media_get_id" version="0.1.4">
        <source-position filename="src/data/grl-media.h" line="271"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="src/data/grl-media.c"
               line="2173">the media's identifier</doc>
          <type name="utf8" c:type="const gchar*"/>
        </return-value>
        <parameters>
          <instance-parameter name="media" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="src/data/grl-media.c"
                 line="2171">the media object</doc>
            <type name="Media" c:type="GrlMedia*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_iso_speed"
              c:identifier="grl_media_get_iso_speed"
              version="0.3.0">
        <source-position filename="src/data/grl-media.h" line="429"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="src/data/grl-media.c"
               line="3686">picture's iso speed</doc>
          <type name="gfloat" c:type="gfloat"/>
        </return-value>
        <parameters>
          <instance-parameter name="media" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="src/data/grl-media.c"
                 line="3684">the media instance</doc>
            <type name="Media" c:type="GrlMedia*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_keyword"
              c:identifier="grl_media_get_keyword"
              version="0.2.3">
        <source-position filename="src/data/grl-media.h" line="346"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="src/data/grl-media.c"
               line="2928">the keyword describing the @media (owned by @media).</doc>
          <type name="utf8" c:type="const gchar*"/>
        </return-value>
        <parameters>
          <instance-parameter name="media" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="src/data/grl-media.c"
                 line="2926">a #GrlMedia</doc>
            <type name="Media" c:type="GrlMedia*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_keyword_nth"
              c:identifier="grl_media_get_keyword_nth"
              version="0.2.3">
        <source-position filename="src/data/grl-media.h" line="348"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="src/data/grl-media.c"
               line="2946">the keyword describing the @media (owned by @media).</doc>
          <type name="utf8" c:type="const gchar*"/>
        </return-value>
        <parameters>
          <instance-parameter name="media" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="src/data/grl-media.c"
                 line="2943">a #GrlMedia</doc>
            <type name="Media" c:type="GrlMedia*"/>
          </instance-parameter>
          <parameter name="index" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="src/data/grl-media.c"
                 line="2944">element to retrieve</doc>
            <type name="guint" c:type="guint"/>
          </parameter>
        </parameters>
      </method>
      <method name="get_last_played"
              c:identifier="grl_media_get_last_played"
              version="0.3.0">
        <source-position filename="src/data/grl-media.h" line="326"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="src/data/grl-media.c"
               line="2734">the media's last played time</doc>
          <type name="GLib.DateTime" c:type="GDateTime*"/>
        </return-value>
        <parameters>
          <instance-parameter name="media" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="src/data/grl-media.c"
                 line="2732">the media object</doc>
            <type name="Media" c:type="GrlMedia*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_last_position"
              c:identifier="grl_media_get_last_position"
              version="0.1.4">
        <source-position filename="src/data/grl-media.h" line="324"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="src/data/grl-media.c"
               line="2718">the media's last_played position (in seconds)</doc>
          <type name="gint" c:type="gint"/>
        </return-value>
        <parameters>
          <instance-parameter name="media" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="src/data/grl-media.c"
                 line="2716">the media object</doc>
            <type name="Media" c:type="GrlMedia*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_license"
              c:identifier="grl_media_get_license"
              version="0.1.6">
        <source-position filename="src/data/grl-media.h" line="340"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="src/data/grl-media.c"
               line="2879">the license the media is under</doc>
          <type name="utf8" c:type="const gchar*"/>
        </return-value>
        <parameters>
          <instance-parameter name="media" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="src/data/grl-media.c"
                 line="2877">the media object</doc>
            <type name="Media" c:type="GrlMedia*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_lyrics"
              c:identifier="grl_media_get_lyrics"
              version="0.3.0">
        <source-position filename="src/data/grl-media.h" line="371"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="src/data/grl-media.c"
               line="3141">the lyrics of the media</doc>
          <type name="utf8" c:type="const gchar*"/>
        </return-value>
        <parameters>
          <instance-parameter name="media" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="src/data/grl-media.c"
                 line="3139">the media instance</doc>
            <type name="Media" c:type="GrlMedia*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_lyrics_nth"
              c:identifier="grl_media_get_lyrics_nth"
              version="0.3.0">
        <source-position filename="src/data/grl-media.h" line="373"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="src/data/grl-media.c"
               line="3157">the n-th lyrics of the media</doc>
          <type name="utf8" c:type="const gchar*"/>
        </return-value>
        <parameters>
          <instance-parameter name="media" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="src/data/grl-media.c"
                 line="3154">the media instance</doc>
            <type name="Media" c:type="GrlMedia*"/>
          </instance-parameter>
          <parameter name="index" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="src/data/grl-media.c"
                 line="3155">element to retrieve, starting at 0</doc>
            <type name="guint" c:type="guint"/>
          </parameter>
        </parameters>
      </method>
      <method name="get_mb_album_id"
              c:identifier="grl_media_get_mb_album_id"
              version="0.3.0"
              deprecated="1"
              deprecated-version="0.3.8">
        <doc-deprecated xml:space="preserve">in favor of more specific metadata-keys
GRL_METADATA_KEY_MB_RELEASE_ID and GRL_METADATA_KEY_MB_RELEASE_GROUP_ID</doc-deprecated>
        <source-position filename="src/data/grl-media.h" line="357"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="src/data/grl-media.c"
               line="3020">the MusicBrainz album identifier</doc>
          <type name="utf8" c:type="const gchar*"/>
        </return-value>
        <parameters>
          <instance-parameter name="media" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="src/data/grl-media.c"
                 line="3018">the media instance</doc>
            <type name="Media" c:type="GrlMedia*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_mb_artist_id"
              c:identifier="grl_media_get_mb_artist_id"
              version="0.3.0">
        <source-position filename="src/data/grl-media.h" line="359"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="src/data/grl-media.c"
               line="3038">the MusicBrainz artist identifier</doc>
          <type name="utf8" c:type="const gchar*"/>
        </return-value>
        <parameters>
          <instance-parameter name="media" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="src/data/grl-media.c"
                 line="3036">the media instance</doc>
            <type name="Media" c:type="GrlMedia*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_mb_artist_id_nth"
              c:identifier="grl_media_get_mb_artist_id_nth"
              version="0.3.0">
        <source-position filename="src/data/grl-media.h" line="361"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="src/data/grl-media.c"
               line="3054">the n-th MusicBrainz artist identifier of the media</doc>
          <type name="utf8" c:type="const gchar*"/>
        </return-value>
        <parameters>
          <instance-parameter name="media" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="src/data/grl-media.c"
                 line="3051">the media instance</doc>
            <type name="Media" c:type="GrlMedia*"/>
          </instance-parameter>
          <parameter name="index" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="src/data/grl-media.c"
                 line="3052">element to retrieve, starting at 0</doc>
            <type name="guint" c:type="guint"/>
          </parameter>
        </parameters>
      </method>
      <method name="get_mb_recording_id"
              c:identifier="grl_media_get_mb_recording_id"
              version="0.3.0">
        <source-position filename="src/data/grl-media.h" line="363"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="src/data/grl-media.c"
               line="3081">the MusicBrainz recording identifier</doc>
          <type name="utf8" c:type="const gchar*"/>
        </return-value>
        <parameters>
          <instance-parameter name="media" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="src/data/grl-media.c"
                 line="3079">the media instance</doc>
            <type name="Media" c:type="GrlMedia*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_mb_release_group_id"
              c:identifier="grl_media_get_mb_release_group_id"
              version="0.3.8">
        <source-position filename="src/data/grl-media.h" line="369"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="src/data/grl-media.c"
               line="3126">the MusicBrainz release group identifier of the media</doc>
          <type name="utf8" c:type="const gchar*"/>
        </return-value>
        <parameters>
          <instance-parameter name="media" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="src/data/grl-media.c"
                 line="3124">the media instance</doc>
            <type name="Media" c:type="GrlMedia*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_mb_release_id"
              c:identifier="grl_media_get_mb_release_id"
              version="0.3.8">
        <source-position filename="src/data/grl-media.h" line="367"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="src/data/grl-media.c"
               line="3111">the MusicBrainz release identifier of the media</doc>
          <type name="utf8" c:type="const gchar*"/>
        </return-value>
        <parameters>
          <instance-parameter name="media" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="src/data/grl-media.c"
                 line="3109">the media instance</doc>
            <type name="Media" c:type="GrlMedia*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_mb_track_id"
              c:identifier="grl_media_get_mb_track_id"
              version="0.3.0">
        <source-position filename="src/data/grl-media.h" line="365"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="src/data/grl-media.c"
               line="3096">the MusicBrainz track identifier</doc>
          <type name="utf8" c:type="const gchar*"/>
        </return-value>
        <parameters>
          <instance-parameter name="media" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="src/data/grl-media.c"
                 line="3094">the media instance</doc>
            <type name="Media" c:type="GrlMedia*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_media_type"
              c:identifier="grl_media_get_media_type"
              glib:get-property="media-type"
              version="0.3.0">
        <doc xml:space="preserve"
             filename="src/data/grl-media.c"
             line="3352">Gets the "media-type" property.</doc>
        <source-position filename="src/data/grl-media.h" line="393"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="src/data/grl-media.c"
               line="3358">media type</doc>
          <type name="MediaType" c:type="GrlMediaType"/>
        </return-value>
        <parameters>
          <instance-parameter name="media" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="src/data/grl-media.c"
                 line="3354">the media instance</doc>
            <type name="Media" c:type="GrlMedia*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_mime"
              c:identifier="grl_media_get_mime"
              version="0.1.4">
        <source-position filename="src/data/grl-media.h" line="318"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="src/data/grl-media.c"
               line="2670">the media's mime-type</doc>
          <type name="utf8" c:type="const gchar*"/>
        </return-value>
        <parameters>
          <instance-parameter name="media" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="src/data/grl-media.c"
                 line="2668">the media object</doc>
            <type name="Media" c:type="GrlMedia*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_modification_date"
              c:identifier="grl_media_get_modification_date"
              version="0.2.0">
        <source-position filename="src/data/grl-media.h" line="316"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="src/data/grl-media.c"
               line="2653">date when the media was last modified (owned by @media).</doc>
          <type name="GLib.DateTime" c:type="GDateTime*"/>
        </return-value>
        <parameters>
          <instance-parameter name="media" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="src/data/grl-media.c"
                 line="2651">the media</doc>
            <type name="Media" c:type="GrlMedia*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_orientation"
              c:identifier="grl_media_get_orientation"
              version="0.3.0">
        <source-position filename="src/data/grl-media.h" line="431"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="src/data/grl-media.c"
               line="3702">degrees clockwise orientation of the picture</doc>
          <type name="gint" c:type="gint"/>
        </return-value>
        <parameters>
          <instance-parameter name="media" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="src/data/grl-media.c"
                 line="3700">the image instance</doc>
            <type name="Media" c:type="GrlMedia*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_original_title"
              c:identifier="grl_media_get_original_title"
              version="0.3.0">
        <source-position filename="src/data/grl-media.h" line="421"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="src/data/grl-media.c"
               line="3619">the original, untranslated title of the movie (owned by @media).</doc>
          <type name="utf8" c:type="const gchar*"/>
        </return-value>
        <parameters>
          <instance-parameter name="media" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="src/data/grl-media.c"
                 line="3617">a #GrlMedia</doc>
            <type name="Media" c:type="GrlMedia*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_performer"
              c:identifier="grl_media_get_performer"
              version="0.3.0">
        <source-position filename="src/data/grl-media.h" line="409"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="src/data/grl-media.c"
               line="3481">the actor performing in the movie (owned by @media).</doc>
          <type name="utf8" c:type="const gchar*"/>
        </return-value>
        <parameters>
          <instance-parameter name="media" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="src/data/grl-media.c"
                 line="3479">a #GrlMedia</doc>
            <type name="Media" c:type="GrlMedia*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_performer_nth"
              c:identifier="grl_media_get_performer_nth"
              version="0.3.0">
        <source-position filename="src/data/grl-media.h" line="411"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="src/data/grl-media.c"
               line="3498">the actor performing in the movie (owned by @medi).</doc>
          <type name="utf8" c:type="const gchar*"/>
        </return-value>
        <parameters>
          <instance-parameter name="media" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="src/data/grl-media.c"
                 line="3495">a #GrlMedia</doc>
            <type name="Media" c:type="GrlMedia*"/>
          </instance-parameter>
          <parameter name="index" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="src/data/grl-media.c"
                 line="3496">element to retrieve</doc>
            <type name="guint" c:type="guint"/>
          </parameter>
        </parameters>
      </method>
      <method name="get_play_count"
              c:identifier="grl_media_get_play_count"
              version="0.1.4">
        <source-position filename="src/data/grl-media.h" line="322"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="src/data/grl-media.c"
               line="2702">the media's play count</doc>
          <type name="gint" c:type="gint"/>
        </return-value>
        <parameters>
          <instance-parameter name="media" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="src/data/grl-media.c"
                 line="2700">the media object</doc>
            <type name="Media" c:type="GrlMedia*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_player"
              c:identifier="grl_media_get_player"
              version="0.1.6">
        <source-position filename="src/data/grl-media.h" line="328"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="src/data/grl-media.c"
               line="2750">URL of an external player
object for this media</doc>
          <type name="utf8" c:type="const gchar*"/>
        </return-value>
        <parameters>
          <instance-parameter name="media" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="src/data/grl-media.c"
                 line="2748">the media object</doc>
            <type name="Media" c:type="GrlMedia*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_player_nth"
              c:identifier="grl_media_get_player_nth"
              version="0.1.10">
        <source-position filename="src/data/grl-media.h" line="330"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="src/data/grl-media.c"
               line="2769">the n-th media's external player object.</doc>
          <type name="utf8" c:type="const gchar*"/>
        </return-value>
        <parameters>
          <instance-parameter name="media" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="src/data/grl-media.c"
                 line="2766">the media object</doc>
            <type name="Media" c:type="GrlMedia*"/>
          </instance-parameter>
          <parameter name="index" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="src/data/grl-media.c"
                 line="2767">element to retrieve</doc>
            <type name="guint" c:type="guint"/>
          </parameter>
        </parameters>
      </method>
      <method name="get_producer"
              c:identifier="grl_media_get_producer"
              version="0.3.0">
        <source-position filename="src/data/grl-media.h" line="413"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="src/data/grl-media.c"
               line="3527">the producer of the movie (owned by @media).</doc>
          <type name="utf8" c:type="const gchar*"/>
        </return-value>
        <parameters>
          <instance-parameter name="media" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="src/data/grl-media.c"
                 line="3525">a #GrlMedia</doc>
            <type name="Media" c:type="GrlMedia*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_producer_nth"
              c:identifier="grl_media_get_producer_nth"
              version="0.3.0">
        <source-position filename="src/data/grl-media.h" line="415"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="src/data/grl-media.c"
               line="3544">the producer of the movie (owned by @media).</doc>
          <type name="utf8" c:type="const gchar*"/>
        </return-value>
        <parameters>
          <instance-parameter name="media" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="src/data/grl-media.c"
                 line="3541">a #GrlMedia</doc>
            <type name="Media" c:type="GrlMedia*"/>
          </instance-parameter>
          <parameter name="index" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="src/data/grl-media.c"
                 line="3542">element to retrieve</doc>
            <type name="guint" c:type="guint"/>
          </parameter>
        </parameters>
      </method>
      <method name="get_publication_date"
              c:identifier="grl_media_get_publication_date"
              version="0.2.0">
        <source-position filename="src/data/grl-media.h" line="301"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="src/data/grl-media.c"
               line="2515">the publication date of @media (owned by @media).</doc>
          <type name="GLib.DateTime" c:type="GDateTime*"/>
        </return-value>
        <parameters>
          <instance-parameter name="media" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="src/data/grl-media.c"
                 line="2513">the media object</doc>
            <type name="Media" c:type="GrlMedia*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_rating"
              c:identifier="grl_media_get_rating"
              version="0.1.5">
        <source-position filename="src/data/grl-media.h" line="320"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="src/data/grl-media.c"
               line="2686">the media's rating</doc>
          <type name="gfloat" c:type="gfloat"/>
        </return-value>
        <parameters>
          <instance-parameter name="media" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="src/data/grl-media.c"
                 line="2684">the media object</doc>
            <type name="Media" c:type="GrlMedia*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_region"
              c:identifier="grl_media_get_region"
              version="0.2.3">
        <source-position filename="src/data/grl-media.h" line="303"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="src/data/grl-media.c"
               line="2532">the ISO-3166-1 of the region where the media was
published (owned by @media).</doc>
          <type name="utf8" c:type="const gchar*"/>
        </return-value>
        <parameters>
          <instance-parameter name="media" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="src/data/grl-media.c"
                 line="2530">the media object</doc>
            <type name="Media" c:type="GrlMedia*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_region_data"
              c:identifier="grl_media_get_region_data"
              version="0.2.3">
        <doc xml:space="preserve"
             filename="src/data/grl-media.c"
             line="2545">Returns the media's age certificate and publication date for the first region.
This should usually be the media's most relevant region.
Use grl_media_get_region_data_nth() to get the age certificate and
publication date for other regions.</doc>
        <source-position filename="src/data/grl-media.h" line="305"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="src/data/grl-media.c"
               line="2556">the ISO-3166-1 of the region where the media was
published (owned by @media).</doc>
          <type name="utf8" c:type="const gchar*"/>
        </return-value>
        <parameters>
          <instance-parameter name="media" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="src/data/grl-media.c"
                 line="2547">the media object</doc>
            <type name="Media" c:type="GrlMedia*"/>
          </instance-parameter>
          <parameter name="publication_date"
                     direction="out"
                     caller-allocates="0"
                     transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="src/data/grl-media.c"
                 line="2548">the publication date, or %NULL to ignore.</doc>
            <type name="GLib.DateTime" c:type="const GDateTime**"/>
          </parameter>
          <parameter name="certificate"
                     direction="out"
                     caller-allocates="0"
                     transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="src/data/grl-media.c"
                 line="2549">the age certification, or %NULL to ignore.</doc>
            <type name="utf8" c:type="const gchar**"/>
          </parameter>
        </parameters>
      </method>
      <method name="get_region_data_nth"
              c:identifier="grl_media_get_region_data_nth"
              version="0.2.3">
        <doc xml:space="preserve"
             filename="src/data/grl-media.c"
             line="2571">Returns the media's age certificate and publication date for one region.
Use grl_data_length() with GRL_METADATA_KEY_REGION to discover
how many regions are available. For instance:
&lt;informalexample&gt;
&lt;programlisting role="C"&gt;&lt;![CDATA[
guint count = grl_data_length (GRL_DATA (media), GRL_METADATA_KEY_REGION);
guint i;
for (i = 0; i &lt; count; ++i) {
  const GDateTime* publication_date = NULL;
  const gchar* certificate = NULL;
  const gchar* region =
    grl_media_get_region_data_nth (media, i,
      &amp;publication_date, &amp;certificate);
  ...
}
]]&gt;&lt;/programlisting&gt;
&lt;/informalexample&gt;</doc>
        <source-position filename="src/data/grl-media.h" line="309"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="src/data/grl-media.c"
               line="2596">the ISO-3166-1 of the region where the media was
published (owned by @media).</doc>
          <type name="utf8" c:type="const gchar*"/>
        </return-value>
        <parameters>
          <instance-parameter name="media" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="src/data/grl-media.c"
                 line="2573">the media object</doc>
            <type name="Media" c:type="GrlMedia*"/>
          </instance-parameter>
          <parameter name="index" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="src/data/grl-media.c"
                 line="2574">element to retrieve</doc>
            <type name="guint" c:type="guint"/>
          </parameter>
          <parameter name="publication_date"
                     direction="out"
                     caller-allocates="0"
                     transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="src/data/grl-media.c"
                 line="2575">the publication date, or %NULL to ignore.</doc>
            <type name="GLib.DateTime" c:type="const GDateTime**"/>
          </parameter>
          <parameter name="certificate"
                     direction="out"
                     caller-allocates="0"
                     transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="src/data/grl-media.c"
                 line="2576">the age certification, or %NULL to ignore.</doc>
            <type name="utf8" c:type="const gchar**"/>
          </parameter>
        </parameters>
      </method>
      <method name="get_season"
              c:identifier="grl_media_get_season"
              version="0.3.0">
        <source-position filename="src/data/grl-media.h" line="401"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="src/data/grl-media.c"
               line="3419">the season number of the media</doc>
          <type name="gint" c:type="gint"/>
        </return-value>
        <parameters>
          <instance-parameter name="media" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="src/data/grl-media.c"
                 line="3417">the media instance</doc>
            <type name="Media" c:type="GrlMedia*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_show"
              c:identifier="grl_media_get_show"
              version="0.3.0">
        <source-position filename="src/data/grl-media.h" line="407"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="src/data/grl-media.c"
               line="3465">the show title of the media</doc>
          <type name="utf8" c:type="const gchar*"/>
        </return-value>
        <parameters>
          <instance-parameter name="media" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="src/data/grl-media.c"
                 line="3463">the media instance</doc>
            <type name="Media" c:type="GrlMedia*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_site"
              c:identifier="grl_media_get_site"
              version="0.1.4">
        <source-position filename="src/data/grl-media.h" line="297"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="src/data/grl-media.c"
               line="2483">the media's site</doc>
          <type name="utf8" c:type="const gchar*"/>
        </return-value>
        <parameters>
          <instance-parameter name="media" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="src/data/grl-media.c"
                 line="2481">the media object</doc>
            <type name="Media" c:type="GrlMedia*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_size"
              c:identifier="grl_media_get_size"
              version="0.2.10">
        <source-position filename="src/data/grl-media.h" line="350"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="src/data/grl-media.c"
               line="2975">the media's size, in bytes or -1 if unknown.</doc>
          <type name="gint64" c:type="gint64"/>
        </return-value>
        <parameters>
          <instance-parameter name="media" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="src/data/grl-media.c"
                 line="2973">the media object</doc>
            <type name="Media" c:type="GrlMedia*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_source"
              c:identifier="grl_media_get_source"
              version="0.1.4">
        <source-position filename="src/data/grl-media.h" line="287"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="src/data/grl-media.c"
               line="2370">the media's source</doc>
          <type name="utf8" c:type="const gchar*"/>
        </return-value>
        <parameters>
          <instance-parameter name="media" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="src/data/grl-media.c"
                 line="2368">the media object source</doc>
            <type name="Media" c:type="GrlMedia*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_start_time"
              c:identifier="grl_media_get_start_time"
              version="0.1.19">
        <source-position filename="src/data/grl-media.h" line="342"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="src/data/grl-media.c"
               line="2895">the start time of the logical media resource inside the
         file containing it, in seconds.</doc>
          <type name="gfloat" c:type="gfloat"/>
        </return-value>
        <parameters>
          <instance-parameter name="media" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="src/data/grl-media.c"
                 line="2893">the media object</doc>
            <type name="Media" c:type="GrlMedia*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_studio"
              c:identifier="grl_media_get_studio"
              version="0.1.6">
        <source-position filename="src/data/grl-media.h" line="336"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="src/data/grl-media.c"
               line="2842">the studio the media is from</doc>
          <type name="utf8" c:type="const gchar*"/>
        </return-value>
        <parameters>
          <instance-parameter name="media" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="src/data/grl-media.c"
                 line="2840">the media object</doc>
            <type name="Media" c:type="GrlMedia*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_thumbnail"
              c:identifier="grl_media_get_thumbnail"
              version="0.1.4">
        <source-position filename="src/data/grl-media.h" line="289"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="src/data/grl-media.c"
               line="2386">the media's thumbnail URL</doc>
          <type name="utf8" c:type="const gchar*"/>
        </return-value>
        <parameters>
          <instance-parameter name="media" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="src/data/grl-media.c"
                 line="2384">the media object</doc>
            <type name="Media" c:type="GrlMedia*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_thumbnail_binary"
              c:identifier="grl_media_get_thumbnail_binary"
              version="0.1.9">
        <source-position filename="src/data/grl-media.h" line="293"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="src/data/grl-media.c"
               line="2431">the media's thumbnail data and set size to the thumbnail buffer size</doc>
          <type name="guint8" c:type="const guint8*"/>
        </return-value>
        <parameters>
          <instance-parameter name="media" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="src/data/grl-media.c"
                 line="2428">the media object</doc>
            <type name="Media" c:type="GrlMedia*"/>
          </instance-parameter>
          <parameter name="size" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="src/data/grl-media.c"
                 line="2429">pointer to storing the thumbnail buffer size</doc>
            <type name="gsize" c:type="gsize*"/>
          </parameter>
        </parameters>
      </method>
      <method name="get_thumbnail_binary_nth"
              c:identifier="grl_media_get_thumbnail_binary_nth"
              version="0.1.10">
        <source-position filename="src/data/grl-media.h" line="295"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="src/data/grl-media.c"
               line="2452">the n-th media's thumbnail binary and sets size to the thumbnail
buffer size.</doc>
          <type name="guint8" c:type="const guint8*"/>
        </return-value>
        <parameters>
          <instance-parameter name="media" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="src/data/grl-media.c"
                 line="2448">the media object</doc>
            <type name="Media" c:type="GrlMedia*"/>
          </instance-parameter>
          <parameter name="size" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="src/data/grl-media.c"
                 line="2449">pointer to store the thumbnail buffer size</doc>
            <type name="gsize" c:type="gsize*"/>
          </parameter>
          <parameter name="index" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="src/data/grl-media.c"
                 line="2450">element to retrieve</doc>
            <type name="guint" c:type="guint"/>
          </parameter>
        </parameters>
      </method>
      <method name="get_thumbnail_nth"
              c:identifier="grl_media_get_thumbnail_nth"
              version="0.1.10">
        <source-position filename="src/data/grl-media.h" line="291"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="src/data/grl-media.c"
               line="2403">the n-th media's thumbnail.</doc>
          <type name="utf8" c:type="const gchar*"/>
        </return-value>
        <parameters>
          <instance-parameter name="media" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="src/data/grl-media.c"
                 line="2400">the media object</doc>
            <type name="Media" c:type="GrlMedia*"/>
          </instance-parameter>
          <parameter name="index" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="src/data/grl-media.c"
                 line="2401">element to retrieve</doc>
            <type name="guint" c:type="guint"/>
          </parameter>
        </parameters>
      </method>
      <method name="get_title"
              c:identifier="grl_media_get_title"
              version="0.1.4">
        <source-position filename="src/data/grl-media.h" line="283"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="src/data/grl-media.c"
               line="2338">the media's title</doc>
          <type name="utf8" c:type="const gchar*"/>
        </return-value>
        <parameters>
          <instance-parameter name="media" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="src/data/grl-media.c"
                 line="2336">the media object</doc>
            <type name="Media" c:type="GrlMedia*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_track_number"
              c:identifier="grl_media_get_track_number"
              version="0.3.0">
        <source-position filename="src/data/grl-media.h" line="352"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="src/data/grl-media.c"
               line="2990">the track number of the media</doc>
          <type name="gint" c:type="gint"/>
        </return-value>
        <parameters>
          <instance-parameter name="media" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="src/data/grl-media.c"
                 line="2988">the media instance</doc>
            <type name="Media" c:type="GrlMedia*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_url" c:identifier="grl_media_get_url" version="0.1.4">
        <source-position filename="src/data/grl-media.h" line="273"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="src/data/grl-media.c"
               line="2189">the media's URL</doc>
          <type name="utf8" c:type="const gchar*"/>
        </return-value>
        <parameters>
          <instance-parameter name="media" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="src/data/grl-media.c"
                 line="2187">the media object</doc>
            <type name="Media" c:type="GrlMedia*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_url_data"
              c:identifier="grl_media_get_url_data"
              version="0.3.0">
        <source-position filename="src/data/grl-media.h" line="275"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="src/data/grl-media.c"
               line="2210">the media's URL and its related properties.</doc>
          <type name="utf8" c:type="const gchar*"/>
        </return-value>
        <parameters>
          <instance-parameter name="media" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="src/data/grl-media.c"
                 line="2203">the media object</doc>
            <type name="Media" c:type="GrlMedia*"/>
          </instance-parameter>
          <parameter name="mime"
                     direction="out"
                     caller-allocates="0"
                     transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="src/data/grl-media.c"
                 line="2204">the mime-type, or %NULL to ignore.</doc>
            <type name="utf8" c:type="gchar**"/>
          </parameter>
          <parameter name="bitrate"
                     direction="out"
                     caller-allocates="0"
                     transfer-ownership="full">
            <doc xml:space="preserve"
                 filename="src/data/grl-media.c"
                 line="2205">the url bitrate, or %NULL to ignore</doc>
            <type name="gint" c:type="gint*"/>
          </parameter>
          <parameter name="framerate" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="src/data/grl-media.c"
                 line="2206">the url framerate, or %NULL to ignore</doc>
            <type name="gfloat" c:type="gfloat*"/>
          </parameter>
          <parameter name="width" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="src/data/grl-media.c"
                 line="2207">the url width, or %NULL to ignore</doc>
            <type name="gint" c:type="gint*"/>
          </parameter>
          <parameter name="height" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="src/data/grl-media.c"
                 line="2208">the url height, or %NULL to ignore</doc>
            <type name="gint" c:type="gint*"/>
          </parameter>
        </parameters>
      </method>
      <method name="get_url_data_nth"
              c:identifier="grl_media_get_url_data_nth"
              version="0.3.0">
        <source-position filename="src/data/grl-media.h" line="277"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="src/data/grl-media.c"
               line="2244">the n-th media's URL and its related properties.</doc>
          <type name="utf8" c:type="const gchar*"/>
        </return-value>
        <parameters>
          <instance-parameter name="media" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="src/data/grl-media.c"
                 line="2236">the media object</doc>
            <type name="Media" c:type="GrlMedia*"/>
          </instance-parameter>
          <parameter name="index" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="src/data/grl-media.c"
                 line="2237">element to retrieve</doc>
            <type name="guint" c:type="guint"/>
          </parameter>
          <parameter name="mime"
                     direction="out"
                     caller-allocates="0"
                     transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="src/data/grl-media.c"
                 line="2238">the mime-type, or %NULL to ignore.</doc>
            <type name="utf8" c:type="gchar**"/>
          </parameter>
          <parameter name="bitrate"
                     direction="out"
                     caller-allocates="0"
                     transfer-ownership="full">
            <doc xml:space="preserve"
                 filename="src/data/grl-media.c"
                 line="2239">the url bitrate, or %NULL to ignore</doc>
            <type name="gint" c:type="gint*"/>
          </parameter>
          <parameter name="framerate" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="src/data/grl-media.c"
                 line="2240">the url framerate, or %NULL to ignore</doc>
            <type name="gfloat" c:type="gfloat*"/>
          </parameter>
          <parameter name="width" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="src/data/grl-media.c"
                 line="2241">the url width, or %NULL to ignore</doc>
            <type name="gint" c:type="gint*"/>
          </parameter>
          <parameter name="height" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="src/data/grl-media.c"
                 line="2242">the url height, or %NULL to ignore</doc>
            <type name="gint" c:type="gint*"/>
          </parameter>
        </parameters>
      </method>
      <method name="get_width"
              c:identifier="grl_media_get_width"
              version="0.3.0">
        <source-position filename="src/data/grl-media.h" line="395"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="src/data/grl-media.c"
               line="3374">the width of the media</doc>
          <type name="gint" c:type="gint"/>
        </return-value>
        <parameters>
          <instance-parameter name="media" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="src/data/grl-media.c"
                 line="3372">the media instance</doc>
            <type name="Media" c:type="GrlMedia*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="is_audio"
              c:identifier="grl_media_is_audio"
              version="0.3.0">
        <doc xml:space="preserve"
             filename="src/data/grl-media.c"
             line="220">Check if @media is an audio</doc>
        <source-position filename="src/data/grl-media.h" line="448"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="src/data/grl-media.c"
               line="226">%TRUE if @media is an audio</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <instance-parameter name="media" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="src/data/grl-media.c"
                 line="222">a media</doc>
            <type name="Media" c:type="GrlMedia*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="is_container"
              c:identifier="grl_media_is_container"
              version="0.3.0">
        <doc xml:space="preserve"
             filename="src/data/grl-media.c"
             line="274">Check if @media is a container</doc>
        <source-position filename="src/data/grl-media.h" line="457"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="src/data/grl-media.c"
               line="280">%TRUE if @media is a container</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <instance-parameter name="media" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="src/data/grl-media.c"
                 line="276">a media</doc>
            <type name="Media" c:type="GrlMedia*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="is_image"
              c:identifier="grl_media_is_image"
              version="0.3.0">
        <doc xml:space="preserve"
             filename="src/data/grl-media.c"
             line="256">Check if @media is an image</doc>
        <source-position filename="src/data/grl-media.h" line="454"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="src/data/grl-media.c"
               line="262">%TRUE if @media is an image</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <instance-parameter name="media" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="src/data/grl-media.c"
                 line="258">a media</doc>
            <type name="Media" c:type="GrlMedia*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="is_video"
              c:identifier="grl_media_is_video"
              version="0.3.0">
        <doc xml:space="preserve"
             filename="src/data/grl-media.c"
             line="238">Check if @media is a video</doc>
        <source-position filename="src/data/grl-media.h" line="451"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="src/data/grl-media.c"
               line="244">%TRUE if @media is a video</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <instance-parameter name="media" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="src/data/grl-media.c"
                 line="240">a media</doc>
            <type name="Media" c:type="GrlMedia*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="serialize"
              c:identifier="grl_media_serialize"
              version="0.1.6">
        <doc xml:space="preserve"
             filename="src/data/grl-media.c"
             line="646">Serializes a GrlMedia into a string. It does a basic serialization.

See grl_media_serialize_extended() to get more serialization approaches.</doc>
        <source-position filename="src/data/grl-media.h" line="459"/>
        <return-value transfer-ownership="full">
          <doc xml:space="preserve"
               filename="src/data/grl-media.c"
               line="654">serialized media</doc>
          <type name="utf8" c:type="gchar*"/>
        </return-value>
        <parameters>
          <instance-parameter name="media" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="src/data/grl-media.c"
                 line="648">a #GrlMedia</doc>
            <type name="Media" c:type="GrlMedia*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="serialize_extended"
              c:identifier="grl_media_serialize_extended"
              version="0.1.6"
              introspectable="0">
        <doc xml:space="preserve"
             filename="src/data/grl-media.c"
             line="666">Serializes a GrlMedia into a string.

See grl_media_unserialize() to recover back the GrlMedia from the string.

If serialization type is @GRL_MEDIA_SERIALIZE_PARTIAL then it requires a
@GList with the properties to consider in serialization (id and source are
always considered).</doc>
        <source-position filename="src/data/grl-media.h" line="461"/>
        <return-value transfer-ownership="full">
          <doc xml:space="preserve"
               filename="src/data/grl-media.c"
               line="680">serialized media</doc>
          <type name="utf8" c:type="gchar*"/>
        </return-value>
        <parameters>
          <instance-parameter name="media" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="src/data/grl-media.c"
                 line="668">a #GrlMedia</doc>
            <type name="Media" c:type="GrlMedia*"/>
          </instance-parameter>
          <parameter name="serial_type" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="src/data/grl-media.c"
                 line="669">type of serialization</doc>
            <type name="MediaSerializeType" c:type="GrlMediaSerializeType"/>
          </parameter>
          <parameter name="..." transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="src/data/grl-media.c"
                 line="670">media keys to serialize</doc>
            <varargs/>
          </parameter>
        </parameters>
      </method>
      <method name="set_album"
              c:identifier="grl_media_set_album"
              version="0.3.0">
        <doc xml:space="preserve"
             filename="src/data/grl-media.c"
             line="1759">Set the album of the media</doc>
        <source-position filename="src/data/grl-media.h" line="199"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="media" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="src/data/grl-media.c"
                 line="1761">the media instance</doc>
            <type name="Media" c:type="GrlMedia*"/>
          </instance-parameter>
          <parameter name="album" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="src/data/grl-media.c"
                 line="1762">the audio's album</doc>
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
        </parameters>
      </method>
      <method name="set_album_artist"
              c:identifier="grl_media_set_album_artist"
              version="0.3.1">
        <doc xml:space="preserve"
             filename="src/data/grl-media.c"
             line="1776">Set the main artist of the album of the media</doc>
        <source-position filename="src/data/grl-media.h" line="201"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="media" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="src/data/grl-media.c"
                 line="1778">the media instance</doc>
            <type name="Media" c:type="GrlMedia*"/>
          </instance-parameter>
          <parameter name="album_artist" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="src/data/grl-media.c"
                 line="1779">the audio's album main artist</doc>
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
        </parameters>
      </method>
      <method name="set_album_disc_number"
              c:identifier="grl_media_set_album_disc_number"
              version="0.3.1">
        <doc xml:space="preserve"
             filename="src/data/grl-media.c"
             line="1793">Set the disc number of the media for multi-disc album sets.</doc>
        <source-position filename="src/data/grl-media.h" line="203"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="media" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="src/data/grl-media.c"
                 line="1795">the media instance</doc>
            <type name="Media" c:type="GrlMedia*"/>
          </instance-parameter>
          <parameter name="disc_number" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="src/data/grl-media.c"
                 line="1796">the disc number within an album</doc>
            <type name="gint" c:type="gint"/>
          </parameter>
        </parameters>
      </method>
      <method name="set_artist"
              c:identifier="grl_media_set_artist"
              version="0.3.0">
        <doc xml:space="preserve"
             filename="src/data/grl-media.c"
             line="1811">Set the artist of the media</doc>
        <source-position filename="src/data/grl-media.h" line="205"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="media" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="src/data/grl-media.c"
                 line="1813">the media instance</doc>
            <type name="Media" c:type="GrlMedia*"/>
          </instance-parameter>
          <parameter name="artist" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="src/data/grl-media.c"
                 line="1814">the audio's artist</doc>
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
        </parameters>
      </method>
      <method name="set_author"
              c:identifier="grl_media_set_author"
              version="0.1.4">
        <doc xml:space="preserve"
             filename="src/data/grl-media.c"
             line="1048">Set the media's author</doc>
        <source-position filename="src/data/grl-media.h" line="113"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="media" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="src/data/grl-media.c"
                 line="1050">the media</doc>
            <type name="Media" c:type="GrlMedia*"/>
          </instance-parameter>
          <parameter name="author" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="src/data/grl-media.c"
                 line="1051">the media's author</doc>
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
        </parameters>
      </method>
      <method name="set_bitrate"
              c:identifier="grl_media_set_bitrate"
              version="0.3.0">
        <doc xml:space="preserve"
             filename="src/data/grl-media.c"
             line="1602">Set the bitrate of the media</doc>
        <source-position filename="src/data/grl-media.h" line="180"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="media" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="src/data/grl-media.c"
                 line="1604">the media instance</doc>
            <type name="Media" c:type="GrlMedia*"/>
          </instance-parameter>
          <parameter name="bitrate" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="src/data/grl-media.c"
                 line="1605">the audio's bitrate</doc>
            <type name="gint" c:type="gint"/>
          </parameter>
        </parameters>
      </method>
      <method name="set_camera_model"
              c:identifier="grl_media_set_camera_model"
              version="0.3.0">
        <doc xml:space="preserve"
             filename="src/data/grl-media.c"
             line="2048">Set the camera_model of the media</doc>
        <source-position filename="src/data/grl-media.h" line="231"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="media" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="src/data/grl-media.c"
                 line="2050">the media instance</doc>
            <type name="Media" c:type="GrlMedia*"/>
          </instance-parameter>
          <parameter name="camera_model" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="src/data/grl-media.c"
                 line="2051">model of camera used to take picture</doc>
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
        </parameters>
      </method>
      <method name="set_certificate"
              c:identifier="grl_media_set_certificate"
              version="0.1.6">
        <doc xml:space="preserve"
             filename="src/data/grl-media.c"
             line="1486">Set the media's first age certification.
This should usually be the media's most relevant
age certificate. Use grl_media_set_region_data() to
set other age certificates.</doc>
        <source-position filename="src/data/grl-media.h" line="164"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="media" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="src/data/grl-media.c"
                 line="1488">the media</doc>
            <type name="Media" c:type="GrlMedia*"/>
          </instance-parameter>
          <parameter name="certificate" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="src/data/grl-media.c"
                 line="1489">The age certificate of the media</doc>
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
        </parameters>
      </method>
      <method name="set_childcount"
              c:identifier="grl_media_set_childcount"
              version="0.3.0">
        <doc xml:space="preserve"
             filename="src/data/grl-media.c"
             line="2145">Sets the number of children of this container. Use
#GRL_METADATA_KEY_CHILDCOUNT_UNKNOWN if it is unknown.</doc>
        <source-position filename="src/data/grl-media.h" line="241"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="media" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="src/data/grl-media.c"
                 line="2147">the media container instance</doc>
            <type name="Media" c:type="GrlMedia*"/>
          </instance-parameter>
          <parameter name="childcount" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="src/data/grl-media.c"
                 line="2148">number of children</doc>
            <type name="gint" c:type="gint"/>
          </parameter>
        </parameters>
      </method>
      <method name="set_composer"
              c:identifier="grl_media_set_composer"
              version="0.3.1">
        <doc xml:space="preserve"
             filename="src/data/grl-media.c"
             line="1828">Set the composer of the media</doc>
        <source-position filename="src/data/grl-media.h" line="207"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="media" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="src/data/grl-media.c"
                 line="1830">the media instance</doc>
            <type name="Media" c:type="GrlMedia*"/>
          </instance-parameter>
          <parameter name="composer" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="src/data/grl-media.c"
                 line="1831">the audio's composer</doc>
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
        </parameters>
      </method>
      <method name="set_creation_date"
              c:identifier="grl_media_set_creation_date"
              version="0.2.0">
        <doc xml:space="preserve"
             filename="src/data/grl-media.c"
             line="1312">Set the creation_date of the media</doc>
        <source-position filename="src/data/grl-media.h" line="144"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="media" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="src/data/grl-media.c"
                 line="1314">the media</doc>
            <type name="Media" c:type="GrlMedia*"/>
          </instance-parameter>
          <parameter name="creation_date" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="src/data/grl-media.c"
                 line="1315">date when media was created</doc>
            <type name="GLib.DateTime" c:type="const GDateTime*"/>
          </parameter>
        </parameters>
      </method>
      <method name="set_description"
              c:identifier="grl_media_set_description"
              version="0.1.4">
        <doc xml:space="preserve"
             filename="src/data/grl-media.c"
             line="1086">Set the media's description</doc>
        <source-position filename="src/data/grl-media.h" line="117"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="media" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="src/data/grl-media.c"
                 line="1088">the media</doc>
            <type name="Media" c:type="GrlMedia*"/>
          </instance-parameter>
          <parameter name="description" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="src/data/grl-media.c"
                 line="1089">the description</doc>
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
        </parameters>
      </method>
      <method name="set_director"
              c:identifier="grl_media_set_director"
              version="0.3.0">
        <doc xml:space="preserve"
             filename="src/data/grl-media.c"
             line="2010">Sets the director of the media.</doc>
        <source-position filename="src/data/grl-media.h" line="227"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="media" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="src/data/grl-media.c"
                 line="2012">a #GrlMedia</doc>
            <type name="Media" c:type="GrlMedia*"/>
          </instance-parameter>
          <parameter name="director" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="src/data/grl-media.c"
                 line="2013">director of the movie</doc>
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
        </parameters>
      </method>
      <method name="set_duration"
              c:identifier="grl_media_set_duration"
              version="0.1.4">
        <doc xml:space="preserve"
             filename="src/data/grl-media.c"
             line="1187">Set the media's duration</doc>
        <source-position filename="src/data/grl-media.h" line="127"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="media" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="src/data/grl-media.c"
                 line="1189">the media</doc>
            <type name="Media" c:type="GrlMedia*"/>
          </instance-parameter>
          <parameter name="duration" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="src/data/grl-media.c"
                 line="1190">the duration in seconds</doc>
            <type name="gint" c:type="gint"/>
          </parameter>
        </parameters>
      </method>
      <method name="set_episode"
              c:identifier="grl_media_set_episode"
              version="0.3.0">
        <doc xml:space="preserve"
             filename="src/data/grl-media.c"
             line="1917">Sets the episode number of the media</doc>
        <source-position filename="src/data/grl-media.h" line="217"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="media" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="src/data/grl-media.c"
                 line="1919">the media instance</doc>
            <type name="Media" c:type="GrlMedia*"/>
          </instance-parameter>
          <parameter name="episode" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="src/data/grl-media.c"
                 line="1920">the video's episode</doc>
            <type name="gint" c:type="gint"/>
          </parameter>
        </parameters>
      </method>
      <method name="set_episode_title"
              c:identifier="grl_media_set_episode_title"
              version="0.3.0">
        <doc xml:space="preserve"
             filename="src/data/grl-media.c"
             line="1935">Sets the title of an media</doc>
        <source-position filename="src/data/grl-media.h" line="219"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="media" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="src/data/grl-media.c"
                 line="1937">the media instance</doc>
            <type name="Media" c:type="GrlMedia*"/>
          </instance-parameter>
          <parameter name="episode_title" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="src/data/grl-media.c"
                 line="1938">the title of the episode</doc>
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
        </parameters>
      </method>
      <method name="set_exposure_time"
              c:identifier="grl_media_set_exposure_time"
              version="0.3.0">
        <doc xml:space="preserve"
             filename="src/data/grl-media.c"
             line="2088">Set the exposure_time of the media</doc>
        <source-position filename="src/data/grl-media.h" line="235"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="media" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="src/data/grl-media.c"
                 line="2090">the media instance</doc>
            <type name="Media" c:type="GrlMedia*"/>
          </instance-parameter>
          <parameter name="exposure_time" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="src/data/grl-media.c"
                 line="2091">picture's exposure time</doc>
            <type name="gfloat" c:type="gfloat"/>
          </parameter>
        </parameters>
      </method>
      <method name="set_external_player"
              c:identifier="grl_media_set_external_player"
              version="0.1.6">
        <doc xml:space="preserve"
             filename="src/data/grl-media.c"
             line="1429">Set the location of a player for the media (usually a flash player)</doc>
        <source-position filename="src/data/grl-media.h" line="158"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="media" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="src/data/grl-media.c"
                 line="1431">the media</doc>
            <type name="Media" c:type="GrlMedia*"/>
          </instance-parameter>
          <parameter name="player" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="src/data/grl-media.c"
                 line="1432">location of an external player for this media</doc>
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
        </parameters>
      </method>
      <method name="set_external_url"
              c:identifier="grl_media_set_external_url"
              version="0.1.6">
        <doc xml:space="preserve"
             filename="src/data/grl-media.c"
             line="1448">Set an external location where users can play the media</doc>
        <source-position filename="src/data/grl-media.h" line="160"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="media" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="src/data/grl-media.c"
                 line="1450">the media</doc>
            <type name="Media" c:type="GrlMedia*"/>
          </instance-parameter>
          <parameter name="url" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="src/data/grl-media.c"
                 line="1451">external location where this media can be played.</doc>
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
        </parameters>
      </method>
      <method name="set_favourite"
              c:identifier="grl_media_set_favourite"
              version="0.2.3">
        <doc xml:space="preserve"
             filename="src/data/grl-media.c"
             line="1527">Set if the media is favourite or not</doc>
        <source-position filename="src/data/grl-media.h" line="172"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="media" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="src/data/grl-media.c"
                 line="1529">a media</doc>
            <type name="Media" c:type="GrlMedia*"/>
          </instance-parameter>
          <parameter name="favourite" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="src/data/grl-media.c"
                 line="1530">whether the item is favourite or not</doc>
            <type name="gboolean" c:type="gboolean"/>
          </parameter>
        </parameters>
      </method>
      <method name="set_flash_used"
              c:identifier="grl_media_set_flash_used"
              version="0.3.0">
        <doc xml:space="preserve"
             filename="src/data/grl-media.c"
             line="2067">Set the flash_used of the media
See
https://gnome.pages.gitlab.gnome.org/tracker/nmm-ontology.html#nmm:Flash</doc>
        <source-position filename="src/data/grl-media.h" line="233"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="media" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="src/data/grl-media.c"
                 line="2069">the media instance</doc>
            <type name="Media" c:type="GrlMedia*"/>
          </instance-parameter>
          <parameter name="flash_used" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="src/data/grl-media.c"
                 line="2070">whether the flash was used</doc>
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
        </parameters>
      </method>
      <method name="set_framerate"
              c:identifier="grl_media_set_framerate"
              version="0.3.0">
        <doc xml:space="preserve"
             filename="src/data/grl-media.c"
             line="1881">Set the framerate of the media</doc>
        <source-position filename="src/data/grl-media.h" line="213"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="media" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="src/data/grl-media.c"
                 line="1883">the media instance</doc>
            <type name="Media" c:type="GrlMedia*"/>
          </instance-parameter>
          <parameter name="framerate" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="src/data/grl-media.c"
                 line="1884">the video's framerate</doc>
            <type name="gfloat" c:type="gfloat"/>
          </parameter>
        </parameters>
      </method>
      <method name="set_genre"
              c:identifier="grl_media_set_genre"
              version="0.3.0">
        <doc xml:space="preserve"
             filename="src/data/grl-media.c"
             line="1742">Set the genre of the media</doc>
        <source-position filename="src/data/grl-media.h" line="197"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="media" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="src/data/grl-media.c"
                 line="1744">the media instance</doc>
            <type name="Media" c:type="GrlMedia*"/>
          </instance-parameter>
          <parameter name="genre" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="src/data/grl-media.c"
                 line="1745">the audio's genre</doc>
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
        </parameters>
      </method>
      <method name="set_height"
              c:identifier="grl_media_set_height"
              version="0.3.0">
        <doc xml:space="preserve"
             filename="src/data/grl-media.c"
             line="1863">Set the height of the media</doc>
        <source-position filename="src/data/grl-media.h" line="211"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="media" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="src/data/grl-media.c"
                 line="1865">the media instance</doc>
            <type name="Media" c:type="GrlMedia*"/>
          </instance-parameter>
          <parameter name="height" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="src/data/grl-media.c"
                 line="1866">the video's height</doc>
            <type name="gint" c:type="gint"/>
          </parameter>
        </parameters>
      </method>
      <method name="set_id" c:identifier="grl_media_set_id" version="0.1.4">
        <doc xml:space="preserve"
             filename="src/data/grl-media.c"
             line="1010">Set the media identifier</doc>
        <source-position filename="src/data/grl-media.h" line="109"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="media" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="src/data/grl-media.c"
                 line="1012">the media</doc>
            <type name="Media" c:type="GrlMedia*"/>
          </instance-parameter>
          <parameter name="id" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="src/data/grl-media.c"
                 line="1013">the identifier of the media</doc>
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
        </parameters>
      </method>
      <method name="set_iso_speed"
              c:identifier="grl_media_set_iso_speed"
              version="0.3.0">
        <doc xml:space="preserve"
             filename="src/data/grl-media.c"
             line="2107">Set the iso_speed of the media</doc>
        <source-position filename="src/data/grl-media.h" line="237"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="media" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="src/data/grl-media.c"
                 line="2109">the media instance</doc>
            <type name="Media" c:type="GrlMedia*"/>
          </instance-parameter>
          <parameter name="iso_speed" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="src/data/grl-media.c"
                 line="2110">picture's iso speed</doc>
            <type name="gfloat" c:type="gfloat"/>
          </parameter>
        </parameters>
      </method>
      <method name="set_keyword"
              c:identifier="grl_media_set_keyword"
              version="0.2.3">
        <doc xml:space="preserve"
             filename="src/data/grl-media.c"
             line="1546">Sets the keyword describing the @media.</doc>
        <source-position filename="src/data/grl-media.h" line="174"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="media" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="src/data/grl-media.c"
                 line="1548">a #GrlMedia</doc>
            <type name="Media" c:type="GrlMedia*"/>
          </instance-parameter>
          <parameter name="keyword" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="src/data/grl-media.c"
                 line="1549">a keyword describing the media</doc>
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
        </parameters>
      </method>
      <method name="set_last_played"
              c:identifier="grl_media_set_last_played"
              version="0.3.0">
        <doc xml:space="preserve"
             filename="src/data/grl-media.c"
             line="1391">Set the media last played date</doc>
        <source-position filename="src/data/grl-media.h" line="154"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="media" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="src/data/grl-media.c"
                 line="1393">the media</doc>
            <type name="Media" c:type="GrlMedia*"/>
          </instance-parameter>
          <parameter name="last_played" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="src/data/grl-media.c"
                 line="1394">date when the media was last played</doc>
            <type name="GLib.DateTime" c:type="const GDateTime*"/>
          </parameter>
        </parameters>
      </method>
      <method name="set_last_position"
              c:identifier="grl_media_set_last_position"
              version="0.1.4">
        <doc xml:space="preserve"
             filename="src/data/grl-media.c"
             line="1410">Set the media last played position</doc>
        <source-position filename="src/data/grl-media.h" line="156"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="media" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="src/data/grl-media.c"
                 line="1412">the media</doc>
            <type name="Media" c:type="GrlMedia*"/>
          </instance-parameter>
          <parameter name="last_position" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="src/data/grl-media.c"
                 line="1413">second at which the media playback was interrupted</doc>
            <type name="gint" c:type="gint"/>
          </parameter>
        </parameters>
      </method>
      <method name="set_license"
              c:identifier="grl_media_set_license"
              version="0.1.6">
        <doc xml:space="preserve"
             filename="src/data/grl-media.c"
             line="1508">Set the media license</doc>
        <source-position filename="src/data/grl-media.h" line="166"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="media" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="src/data/grl-media.c"
                 line="1510">the media</doc>
            <type name="Media" c:type="GrlMedia*"/>
          </instance-parameter>
          <parameter name="license" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="src/data/grl-media.c"
                 line="1511">The license of the media</doc>
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
        </parameters>
      </method>
      <method name="set_lyrics"
              c:identifier="grl_media_set_lyrics"
              version="0.3.0">
        <doc xml:space="preserve"
             filename="src/data/grl-media.c"
             line="1725">Set the lyrics of the media</doc>
        <source-position filename="src/data/grl-media.h" line="195"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="media" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="src/data/grl-media.c"
                 line="1727">the media instance</doc>
            <type name="Media" c:type="GrlMedia*"/>
          </instance-parameter>
          <parameter name="lyrics" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="src/data/grl-media.c"
                 line="1728">the audio's lyrics</doc>
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
        </parameters>
      </method>
      <method name="set_mb_album_id"
              c:identifier="grl_media_set_mb_album_id"
              version="0.3.0"
              deprecated="1"
              deprecated-version="0.3.8">
        <doc xml:space="preserve"
             filename="src/data/grl-media.c"
             line="1671">Set the MusicBrainz album identifier of the media</doc>
        <doc-deprecated xml:space="preserve">in favor of more specific metadata-keys
GRL_METADATA_KEY_MB_RELEASE_ID and GRL_METADATA_KEY_MB_RELEASE_GROUP_ID</doc-deprecated>
        <source-position filename="src/data/grl-media.h" line="189"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="media" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="src/data/grl-media.c"
                 line="1673">the media instance</doc>
            <type name="Media" c:type="GrlMedia*"/>
          </instance-parameter>
          <parameter name="mb_album_id" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="src/data/grl-media.c"
                 line="1674">the MusicBrainz album identifier</doc>
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
        </parameters>
      </method>
      <method name="set_mb_artist_id"
              c:identifier="grl_media_set_mb_artist_id"
              version="0.3.0">
        <doc xml:space="preserve"
             filename="src/data/grl-media.c"
             line="1654">Set the MusicBrainz artist identifier of the media</doc>
        <source-position filename="src/data/grl-media.h" line="186"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="media" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="src/data/grl-media.c"
                 line="1656">the media instance</doc>
            <type name="Media" c:type="GrlMedia*"/>
          </instance-parameter>
          <parameter name="mb_artist_id" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="src/data/grl-media.c"
                 line="1657">the MusicBrainz artist identifier</doc>
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
        </parameters>
      </method>
      <method name="set_mb_recording_id"
              c:identifier="grl_media_set_mb_recording_id"
              version="0.3.0">
        <doc xml:space="preserve"
             filename="src/data/grl-media.c"
             line="1636">Set the MusicBrainz recording identifier of the media</doc>
        <source-position filename="src/data/grl-media.h" line="184"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="media" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="src/data/grl-media.c"
                 line="1638">the media instance</doc>
            <type name="Media" c:type="GrlMedia*"/>
          </instance-parameter>
          <parameter name="mb_recording_id" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="src/data/grl-media.c"
                 line="1639">the MusicBrainz recording identifier</doc>
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
        </parameters>
      </method>
      <method name="set_mb_release_group_id"
              c:identifier="grl_media_set_mb_release_group_id"
              version="0.3.8">
        <doc xml:space="preserve"
             filename="src/data/grl-media.c"
             line="1708">Set the MusicBrainz Release Group identifier of the media</doc>
        <source-position filename="src/data/grl-media.h" line="193"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="media" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="src/data/grl-media.c"
                 line="1710">the media instance</doc>
            <type name="Media" c:type="GrlMedia*"/>
          </instance-parameter>
          <parameter name="mb_release_group_id" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="src/data/grl-media.c"
                 line="1711">Album group release identifier in MusicBrainz</doc>
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
        </parameters>
      </method>
      <method name="set_mb_release_id"
              c:identifier="grl_media_set_mb_release_id"
              version="0.3.8">
        <doc xml:space="preserve"
             filename="src/data/grl-media.c"
             line="1691">Set the MusicBrainz release identifier of the media</doc>
        <source-position filename="src/data/grl-media.h" line="191"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="media" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="src/data/grl-media.c"
                 line="1693">the media instance</doc>
            <type name="Media" c:type="GrlMedia*"/>
          </instance-parameter>
          <parameter name="mb_release_id" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="src/data/grl-media.c"
                 line="1694">Album release identifier in MusicBrainz</doc>
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
        </parameters>
      </method>
      <method name="set_mb_track_id"
              c:identifier="grl_media_set_mb_track_id"
              version="0.3.0">
        <doc xml:space="preserve"
             filename="src/data/grl-media.c"
             line="1619">Set the MusicBrainz track identifier of the media</doc>
        <source-position filename="src/data/grl-media.h" line="182"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="media" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="src/data/grl-media.c"
                 line="1621">the media instance</doc>
            <type name="Media" c:type="GrlMedia*"/>
          </instance-parameter>
          <parameter name="mb_track_id" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="src/data/grl-media.c"
                 line="1622">the MusicBrainz track identifier</doc>
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
        </parameters>
      </method>
      <method name="set_mime"
              c:identifier="grl_media_set_mime"
              version="0.1.4">
        <doc xml:space="preserve"
             filename="src/data/grl-media.c"
             line="1353">Set the media's mime-type</doc>
        <source-position filename="src/data/grl-media.h" line="150"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="media" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="src/data/grl-media.c"
                 line="1355">the media</doc>
            <type name="Media" c:type="GrlMedia*"/>
          </instance-parameter>
          <parameter name="mime" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="src/data/grl-media.c"
                 line="1356">the mime type</doc>
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
        </parameters>
      </method>
      <method name="set_modification_date"
              c:identifier="grl_media_set_modification_date"
              version="0.2.0">
        <doc xml:space="preserve"
             filename="src/data/grl-media.c"
             line="1332">Set the modification date of the media</doc>
        <source-position filename="src/data/grl-media.h" line="147"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="media" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="src/data/grl-media.c"
                 line="1334">the media</doc>
            <type name="Media" c:type="GrlMedia*"/>
          </instance-parameter>
          <parameter name="modification_date" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="src/data/grl-media.c"
                 line="1335">date when the media was last modified</doc>
            <type name="GLib.DateTime" c:type="const GDateTime*"/>
          </parameter>
        </parameters>
      </method>
      <method name="set_orientation"
              c:identifier="grl_media_set_orientation"
              version="0.3.0">
        <doc xml:space="preserve"
             filename="src/data/grl-media.c"
             line="2126">Set the orientation of the media</doc>
        <source-position filename="src/data/grl-media.h" line="239"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="media" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="src/data/grl-media.c"
                 line="2128">the media instance</doc>
            <type name="Media" c:type="GrlMedia*"/>
          </instance-parameter>
          <parameter name="orientation" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="src/data/grl-media.c"
                 line="2129">degrees clockwise orientation of the picture</doc>
            <type name="gint" c:type="gint"/>
          </parameter>
        </parameters>
      </method>
      <method name="set_original_title"
              c:identifier="grl_media_set_original_title"
              version="0.3.0">
        <doc xml:space="preserve"
             filename="src/data/grl-media.c"
             line="2029">Sets the original, untranslated title of the media.</doc>
        <source-position filename="src/data/grl-media.h" line="229"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="media" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="src/data/grl-media.c"
                 line="2031">a #GrlMedia</doc>
            <type name="Media" c:type="GrlMedia*"/>
          </instance-parameter>
          <parameter name="original_title" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="src/data/grl-media.c"
                 line="2032">original, untranslated title of the movie</doc>
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
        </parameters>
      </method>
      <method name="set_performer"
              c:identifier="grl_media_set_performer"
              version="0.3.0">
        <doc xml:space="preserve"
             filename="src/data/grl-media.c"
             line="1973">Sets the actor performing in the movie.</doc>
        <source-position filename="src/data/grl-media.h" line="223"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="media" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="src/data/grl-media.c"
                 line="1975">a #GrlMedia</doc>
            <type name="Media" c:type="GrlMedia*"/>
          </instance-parameter>
          <parameter name="performer" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="src/data/grl-media.c"
                 line="1976">an actor performing in the movie</doc>
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
        </parameters>
      </method>
      <method name="set_play_count"
              c:identifier="grl_media_set_play_count"
              version="0.1.4">
        <doc xml:space="preserve"
             filename="src/data/grl-media.c"
             line="1372">Set the media play count</doc>
        <source-position filename="src/data/grl-media.h" line="152"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="media" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="src/data/grl-media.c"
                 line="1374">the media</doc>
            <type name="Media" c:type="GrlMedia*"/>
          </instance-parameter>
          <parameter name="play_count" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="src/data/grl-media.c"
                 line="1375">the play count</doc>
            <type name="gint" c:type="gint"/>
          </parameter>
        </parameters>
      </method>
      <method name="set_producer"
              c:identifier="grl_media_set_producer"
              version="0.3.0">
        <doc xml:space="preserve"
             filename="src/data/grl-media.c"
             line="1992">Sets the producer of the media.</doc>
        <source-position filename="src/data/grl-media.h" line="225"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="media" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="src/data/grl-media.c"
                 line="1994">a #GrlMedia</doc>
            <type name="Media" c:type="GrlMedia*"/>
          </instance-parameter>
          <parameter name="producer" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="src/data/grl-media.c"
                 line="1995">producer of the movie</doc>
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
        </parameters>
      </method>
      <method name="set_publication_date"
              c:identifier="grl_media_set_publication_date"
              version="0.2.0">
        <doc xml:space="preserve"
             filename="src/data/grl-media.c"
             line="1206">Set the publication date of @media.</doc>
        <source-position filename="src/data/grl-media.h" line="129"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="media" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="src/data/grl-media.c"
                 line="1208">the media</doc>
            <type name="Media" c:type="GrlMedia*"/>
          </instance-parameter>
          <parameter name="date" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="src/data/grl-media.c"
                 line="1209">the date</doc>
            <type name="GLib.DateTime" c:type="const GDateTime*"/>
          </parameter>
        </parameters>
      </method>
      <method name="set_rating"
              c:identifier="grl_media_set_rating"
              version="0.1.5">
        <doc xml:space="preserve"
             filename="src/data/grl-media.c"
             line="292">This method receives a rating and its scale and normalizes it on a scale
from 0...5 to match the usual five-star rating.</doc>
        <source-position filename="src/data/grl-media.h" line="168"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="media" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="src/data/grl-media.c"
                 line="294">a media</doc>
            <type name="Media" c:type="GrlMedia*"/>
          </instance-parameter>
          <parameter name="rating" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="src/data/grl-media.c"
                 line="295">a rating value</doc>
            <type name="gfloat" c:type="gfloat"/>
          </parameter>
          <parameter name="max" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="src/data/grl-media.c"
                 line="296">maximum rating value</doc>
            <type name="gfloat" c:type="gfloat"/>
          </parameter>
        </parameters>
      </method>
      <method name="set_region"
              c:identifier="grl_media_set_region"
              version="0.2.3">
        <doc xml:space="preserve"
             filename="src/data/grl-media.c"
             line="1225">Sets the @region where @media was published.</doc>
        <source-position filename="src/data/grl-media.h" line="131"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="media" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="src/data/grl-media.c"
                 line="1227">a #GrlMedia</doc>
            <type name="Media" c:type="GrlMedia*"/>
          </instance-parameter>
          <parameter name="region" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="src/data/grl-media.c"
                 line="1228">the region's ISO-3166-1 code</doc>
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
        </parameters>
      </method>
      <method name="set_region_data"
              c:identifier="grl_media_set_region_data"
              version="0.2.3">
        <doc xml:space="preserve"
             filename="src/data/grl-media.c"
             line="1243">Sets regional publication and certification information for @region.</doc>
        <source-position filename="src/data/grl-media.h" line="134"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="media" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="src/data/grl-media.c"
                 line="1245">a #GrlMedia</doc>
            <type name="Media" c:type="GrlMedia*"/>
          </instance-parameter>
          <parameter name="region" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="src/data/grl-media.c"
                 line="1246">the region's ISO-3166-1 code</doc>
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
          <parameter name="publication_date" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="src/data/grl-media.c"
                 line="1247">the publication date</doc>
            <type name="GLib.DateTime" c:type="const GDateTime*"/>
          </parameter>
          <parameter name="certificate" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="src/data/grl-media.c"
                 line="1248">the age certification</doc>
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
        </parameters>
      </method>
      <method name="set_season"
              c:identifier="grl_media_set_season"
              version="0.3.0">
        <doc xml:space="preserve"
             filename="src/data/grl-media.c"
             line="1899">Sets the season number of the media</doc>
        <source-position filename="src/data/grl-media.h" line="215"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="media" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="src/data/grl-media.c"
                 line="1901">the media instance</doc>
            <type name="Media" c:type="GrlMedia*"/>
          </instance-parameter>
          <parameter name="season" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="src/data/grl-media.c"
                 line="1902">the video's season</doc>
            <type name="gint" c:type="gint"/>
          </parameter>
        </parameters>
      </method>
      <method name="set_show"
              c:identifier="grl_media_set_show"
              version="0.3.0">
        <doc xml:space="preserve"
             filename="src/data/grl-media.c"
             line="1955">Sets the show title of the media</doc>
        <source-position filename="src/data/grl-media.h" line="221"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="media" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="src/data/grl-media.c"
                 line="1957">the media instance</doc>
            <type name="Media" c:type="GrlMedia*"/>
          </instance-parameter>
          <parameter name="show" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="src/data/grl-media.c"
                 line="1958">the video's show name</doc>
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
        </parameters>
      </method>
      <method name="set_site"
              c:identifier="grl_media_set_site"
              version="0.1.4">
        <doc xml:space="preserve"
             filename="src/data/grl-media.c"
             line="1167">Set the media's site. A site is a website about the media such as a
studio's promotional website for a movie.</doc>
        <source-position filename="src/data/grl-media.h" line="125"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="media" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="src/data/grl-media.c"
                 line="1169">the media</doc>
            <type name="Media" c:type="GrlMedia*"/>
          </instance-parameter>
          <parameter name="site" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="src/data/grl-media.c"
                 line="1170">the site</doc>
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
        </parameters>
      </method>
      <method name="set_size"
              c:identifier="grl_media_set_size"
              version="0.2.10">
        <doc xml:space="preserve"
             filename="src/data/grl-media.c"
             line="1566">Set the size of the media</doc>
        <source-position filename="src/data/grl-media.h" line="176"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="media" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="src/data/grl-media.c"
                 line="1568">the media</doc>
            <type name="Media" c:type="GrlMedia*"/>
          </instance-parameter>
          <parameter name="size" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="src/data/grl-media.c"
                 line="1569">the size in bytes</doc>
            <type name="gint64" c:type="gint64"/>
          </parameter>
        </parameters>
      </method>
      <method name="set_source"
              c:identifier="grl_media_set_source"
              version="0.1.4">
        <doc xml:space="preserve"
             filename="src/data/grl-media.c"
             line="1105">Set the media's source</doc>
        <source-position filename="src/data/grl-media.h" line="119"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="media" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="src/data/grl-media.c"
                 line="1107">the media</doc>
            <type name="Media" c:type="GrlMedia*"/>
          </instance-parameter>
          <parameter name="source" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="src/data/grl-media.c"
                 line="1108">the source</doc>
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
        </parameters>
      </method>
      <method name="set_studio"
              c:identifier="grl_media_set_studio"
              version="0.1.6">
        <doc xml:space="preserve"
             filename="src/data/grl-media.c"
             line="1467">Set the media studio</doc>
        <source-position filename="src/data/grl-media.h" line="162"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="media" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="src/data/grl-media.c"
                 line="1469">the media</doc>
            <type name="Media" c:type="GrlMedia*"/>
          </instance-parameter>
          <parameter name="studio" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="src/data/grl-media.c"
                 line="1470">The studio the media is from</doc>
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
        </parameters>
      </method>
      <method name="set_thumbnail"
              c:identifier="grl_media_set_thumbnail"
              version="0.1.4">
        <doc xml:space="preserve"
             filename="src/data/grl-media.c"
             line="1124">Set the media's thumbnail URL</doc>
        <source-position filename="src/data/grl-media.h" line="121"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="media" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="src/data/grl-media.c"
                 line="1126">the media</doc>
            <type name="Media" c:type="GrlMedia*"/>
          </instance-parameter>
          <parameter name="thumbnail" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="src/data/grl-media.c"
                 line="1127">the thumbnail URL</doc>
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
        </parameters>
      </method>
      <method name="set_thumbnail_binary"
              c:identifier="grl_media_set_thumbnail_binary"
              version="0.1.9">
        <doc xml:space="preserve"
             filename="src/data/grl-media.c"
             line="1143">Set the media's binary thumbnail</doc>
        <source-position filename="src/data/grl-media.h" line="123"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="media" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="src/data/grl-media.c"
                 line="1145">the media</doc>
            <type name="Media" c:type="GrlMedia*"/>
          </instance-parameter>
          <parameter name="thumbnail" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="src/data/grl-media.c"
                 line="1146">thumbnail buffer</doc>
            <type name="guint8" c:type="const guint8*"/>
          </parameter>
          <parameter name="size" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="src/data/grl-media.c"
                 line="1147">thumbnail buffer size</doc>
            <type name="gsize" c:type="gsize"/>
          </parameter>
        </parameters>
      </method>
      <method name="set_title"
              c:identifier="grl_media_set_title"
              version="0.1.4">
        <doc xml:space="preserve"
             filename="src/data/grl-media.c"
             line="1067">Set the media's title</doc>
        <source-position filename="src/data/grl-media.h" line="115"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="media" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="src/data/grl-media.c"
                 line="1069">the media</doc>
            <type name="Media" c:type="GrlMedia*"/>
          </instance-parameter>
          <parameter name="title" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="src/data/grl-media.c"
                 line="1070">the title</doc>
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
        </parameters>
      </method>
      <method name="set_track_number"
              c:identifier="grl_media_set_track_number"
              version="0.3.0">
        <doc xml:space="preserve"
             filename="src/data/grl-media.c"
             line="1585">Set the track number of the media</doc>
        <source-position filename="src/data/grl-media.h" line="178"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="media" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="src/data/grl-media.c"
                 line="1587">the media instance</doc>
            <type name="Media" c:type="GrlMedia*"/>
          </instance-parameter>
          <parameter name="track_number" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="src/data/grl-media.c"
                 line="1588">the audio's track number</doc>
            <type name="gint" c:type="gint"/>
          </parameter>
        </parameters>
      </method>
      <method name="set_url" c:identifier="grl_media_set_url" version="0.1.4">
        <doc xml:space="preserve"
             filename="src/data/grl-media.c"
             line="1029">Set the media's URL</doc>
        <source-position filename="src/data/grl-media.h" line="111"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="media" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="src/data/grl-media.c"
                 line="1031">the media</doc>
            <type name="Media" c:type="GrlMedia*"/>
          </instance-parameter>
          <parameter name="url" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="src/data/grl-media.c"
                 line="1032">the media's URL</doc>
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
        </parameters>
      </method>
      <method name="set_url_data"
              c:identifier="grl_media_set_url_data"
              version="0.3.0">
        <doc xml:space="preserve"
             filename="src/data/grl-media.c"
             line="316">Sets all the keys related with the URL of a media resource in one go.</doc>
        <source-position filename="src/data/grl-media.h" line="170"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="media" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="src/data/grl-media.c"
                 line="318">a #GrlMedia</doc>
            <type name="Media" c:type="GrlMedia*"/>
          </instance-parameter>
          <parameter name="url" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="src/data/grl-media.c"
                 line="319">the media's URL</doc>
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
          <parameter name="mime" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="src/data/grl-media.c"
                 line="320">the @url mime type</doc>
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
          <parameter name="bitrate" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="src/data/grl-media.c"
                 line="321">the @url bitrate, or -1 to ignore</doc>
            <type name="gint" c:type="gint"/>
          </parameter>
          <parameter name="framerate" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="src/data/grl-media.c"
                 line="322">media framerate, or -1 to ignore</doc>
            <type name="gfloat" c:type="gfloat"/>
          </parameter>
          <parameter name="width" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="src/data/grl-media.c"
                 line="323">media width, or -1 to ignore</doc>
            <type name="gint" c:type="gint"/>
          </parameter>
          <parameter name="height" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="src/data/grl-media.c"
                 line="324">media height, or -1 to ignore</doc>
            <type name="gint" c:type="gint"/>
          </parameter>
        </parameters>
      </method>
      <method name="set_width"
              c:identifier="grl_media_set_width"
              version="0.3.0">
        <doc xml:space="preserve"
             filename="src/data/grl-media.c"
             line="1845">Set the width of the media</doc>
        <source-position filename="src/data/grl-media.h" line="209"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="media" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="src/data/grl-media.c"
                 line="1847">the media instance</doc>
            <type name="Media" c:type="GrlMedia*"/>
          </instance-parameter>
          <parameter name="width" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="src/data/grl-media.c"
                 line="1848">the video's width</doc>
            <type name="gint" c:type="gint"/>
          </parameter>
        </parameters>
      </method>
      <property name="media-type"
                writable="1"
                construct="1"
                transfer-ownership="none"
                getter="get_media_type"
                default-value="GRL_MEDIA_TYPE_UNKNOWN">
        <type name="MediaType"/>
      </property>
      <field name="parent">
        <type name="Data" c:type="GrlData"/>
      </field>
      <field name="priv" readable="0" private="1">
        <type name="MediaPrivate" c:type="GrlMediaPrivate*"/>
      </field>
      <field name="_grl_reserved" readable="0" private="1">
        <array zero-terminated="0" fixed-size="8">
          <type name="gpointer" c:type="gpointer"/>
        </array>
      </field>
    </class>
    <record name="MediaClass"
            c:type="GrlMediaClass"
            glib:is-gtype-struct-for="Media">
      <doc xml:space="preserve"
           filename="src/data/grl-media.h"
           line="95">Grilo Media Class</doc>
      <source-position filename="src/data/grl-media.h" line="107"/>
      <field name="parent_class">
        <doc xml:space="preserve"
             filename="src/data/grl-media.h"
             line="97">the parent class structure</doc>
        <type name="DataClass" c:type="GrlDataClass"/>
      </field>
      <field name="_grl_reserved" readable="0" private="1">
        <array zero-terminated="0" fixed-size="16">
          <type name="gpointer" c:type="gpointer"/>
        </array>
      </field>
    </record>
    <record name="MediaPrivate"
            c:type="GrlMediaPrivate"
            disguised="1"
            opaque="1">
      <source-position filename="src/data/grl-media.h" line="81"/>
    </record>
    <enumeration name="MediaSerializeType"
                 version="0.2.3"
                 glib:type-name="GrlMediaSerializeType"
                 glib:get-type="grl_media_serialize_type_get_type"
                 c:type="GrlMediaSerializeType">
      <doc xml:space="preserve"
           filename="src/data/grl-media.h"
           line="63">GrlMedia serialize type</doc>
      <member name="basic"
              value="0"
              c:identifier="GRL_MEDIA_SERIALIZE_BASIC"
              glib:nick="basic"
              glib:name="GRL_MEDIA_SERIALIZE_BASIC">
        <doc xml:space="preserve"
             filename="src/data/grl-media.h"
             line="65">Basic mode</doc>
      </member>
      <member name="partial"
              value="1"
              c:identifier="GRL_MEDIA_SERIALIZE_PARTIAL"
              glib:nick="partial"
              glib:name="GRL_MEDIA_SERIALIZE_PARTIAL">
        <doc xml:space="preserve"
             filename="src/data/grl-media.h"
             line="66">Partial mode</doc>
      </member>
      <member name="full"
              value="2"
              c:identifier="GRL_MEDIA_SERIALIZE_FULL"
              glib:nick="full"
              glib:name="GRL_MEDIA_SERIALIZE_FULL">
        <doc xml:space="preserve"
             filename="src/data/grl-media.h"
             line="67">Full mode</doc>
      </member>
    </enumeration>
    <enumeration name="MediaType"
                 glib:type-name="GrlMediaType"
                 glib:get-type="grl_media_type_get_type"
                 c:type="GrlMediaType">
      <member name="unknown"
              value="0"
              c:identifier="GRL_MEDIA_TYPE_UNKNOWN"
              glib:nick="unknown"
              glib:name="GRL_MEDIA_TYPE_UNKNOWN">
        <doc xml:space="preserve"
             filename="src/grl-metadata-key.h"
             line="47">unknown media</doc>
      </member>
      <member name="audio"
              value="1"
              c:identifier="GRL_MEDIA_TYPE_AUDIO"
              glib:nick="audio"
              glib:name="GRL_MEDIA_TYPE_AUDIO">
        <doc xml:space="preserve"
             filename="src/grl-metadata-key.h"
             line="48">audio media</doc>
      </member>
      <member name="video"
              value="2"
              c:identifier="GRL_MEDIA_TYPE_VIDEO"
              glib:nick="video"
              glib:name="GRL_MEDIA_TYPE_VIDEO">
        <doc xml:space="preserve"
             filename="src/grl-metadata-key.h"
             line="49">video media</doc>
      </member>
      <member name="image"
              value="3"
              c:identifier="GRL_MEDIA_TYPE_IMAGE"
              glib:nick="image"
              glib:name="GRL_MEDIA_TYPE_IMAGE">
        <doc xml:space="preserve"
             filename="src/grl-metadata-key.h"
             line="50">image media</doc>
      </member>
      <member name="container"
              value="4"
              c:identifier="GRL_MEDIA_TYPE_CONTAINER"
              glib:nick="container"
              glib:name="GRL_MEDIA_TYPE_CONTAINER">
        <doc xml:space="preserve"
             filename="src/grl-metadata-key.h"
             line="51">container media</doc>
      </member>
    </enumeration>
    <function-macro name="OPERATION_OPTIONS"
                    c:identifier="GRL_OPERATION_OPTIONS"
                    introspectable="0">
      <source-position filename="src/grl-operation-options.h" line="62"/>
      <parameters>
        <parameter name="obj">
        </parameter>
      </parameters>
    </function-macro>
    <function-macro name="OPERATION_OPTIONS_CLASS"
                    c:identifier="GRL_OPERATION_OPTIONS_CLASS"
                    introspectable="0">
      <source-position filename="src/grl-operation-options.h" line="63"/>
      <parameters>
        <parameter name="klass">
        </parameter>
      </parameters>
    </function-macro>
    <function-macro name="OPERATION_OPTIONS_GET_CLASS"
                    c:identifier="GRL_OPERATION_OPTIONS_GET_CLASS"
                    introspectable="0">
      <source-position filename="src/grl-operation-options.h" line="66"/>
      <parameters>
        <parameter name="obj">
        </parameter>
      </parameters>
    </function-macro>
    <class name="OperationOptions"
           c:symbol-prefix="operation_options"
           c:type="GrlOperationOptions"
           parent="GObject.Object"
           glib:type-name="GrlOperationOptions"
           glib:get-type="grl_operation_options_get_type"
           glib:type-struct="OperationOptionsClass">
      <source-position filename="src/grl-operation-options.h" line="57"/>
      <constructor name="new"
                   c:identifier="grl_operation_options_new"
                   version="0.2.0">
        <doc xml:space="preserve"
             filename="src/grl-operation-options.c"
             line="150">Creates a new GrlOperationOptions object.</doc>
        <source-position filename="src/grl-operation-options.h" line="100"/>
        <return-value transfer-ownership="full">
          <doc xml:space="preserve"
               filename="src/grl-operation-options.c"
               line="157">a new GrlOperationOptions instance.</doc>
          <type name="OperationOptions" c:type="GrlOperationOptions*"/>
        </return-value>
        <parameters>
          <parameter name="caps"
                     transfer-ownership="none"
                     nullable="1"
                     allow-none="1">
            <doc xml:space="preserve"
                 filename="src/grl-operation-options.c"
                 line="152">caps that options will have to match. If %NULL, all
options will be accepted.</doc>
            <type name="Caps" c:type="GrlCaps*"/>
          </parameter>
        </parameters>
      </constructor>
      <method name="copy"
              c:identifier="grl_operation_options_copy"
              version="0.2.0">
        <source-position filename="src/grl-operation-options.h" line="107"/>
        <return-value transfer-ownership="full">
          <doc xml:space="preserve"
               filename="src/grl-operation-options.c"
               line="269">a new #GrlOperationOptions instance with its values being copies of
the values of @options.</doc>
          <type name="OperationOptions" c:type="GrlOperationOptions*"/>
        </return-value>
        <parameters>
          <instance-parameter name="options" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="src/grl-operation-options.c"
                 line="267">a #GrlOperationOptions instance</doc>
            <type name="OperationOptions" c:type="GrlOperationOptions*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_count"
              c:identifier="grl_operation_options_get_count"
              version="0.2.0">
        <doc xml:space="preserve"
             filename="src/grl-operation-options.c"
             line="391">Get the count option, that is, the number of elements to retrieve in an
operation done with @options.</doc>
        <source-position filename="src/grl-operation-options.h" line="113"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="src/grl-operation-options.c"
               line="398">the value of the count option, or a default value if it is not set.</doc>
          <type name="gint" c:type="gint"/>
        </return-value>
        <parameters>
          <instance-parameter name="options" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="src/grl-operation-options.c"
                 line="393">a #GrlOperationOptions instance</doc>
            <type name="OperationOptions" c:type="GrlOperationOptions*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_key_filter"
              c:identifier="grl_operation_options_get_key_filter"
              version="0.2.0">
        <source-position filename="src/grl-operation-options.h" line="135"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="src/grl-operation-options.c"
               line="669">the filter</doc>
          <type name="GObject.Value" c:type="GValue*"/>
        </return-value>
        <parameters>
          <instance-parameter name="options" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="src/grl-operation-options.c"
                 line="666">a #GrlOperationOptions instance</doc>
            <type name="OperationOptions" c:type="GrlOperationOptions*"/>
          </instance-parameter>
          <parameter name="key" transfer-ownership="none">
            <type name="KeyID" c:type="GrlKeyID"/>
          </parameter>
        </parameters>
      </method>
      <method name="get_key_filter_list"
              c:identifier="grl_operation_options_get_key_filter_list"
              version="0.2.0">
        <source-position filename="src/grl-operation-options.h" line="138"/>
        <return-value transfer-ownership="container">
          <type name="GLib.List" c:type="GList*">
            <type name="KeyID"/>
          </type>
        </return-value>
        <parameters>
          <instance-parameter name="options" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="src/grl-operation-options.c"
                 line="683">a #GrlOperationOptions instance</doc>
            <type name="OperationOptions" c:type="GrlOperationOptions*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_key_range_filter"
              c:identifier="grl_operation_options_get_key_range_filter"
              version="0.2.0">
        <doc xml:space="preserve"
             filename="src/grl-operation-options.c"
             line="892">Stores the limits of the range in the filter for @key in @min_value and
@max_value. If some of the values has no limit, it will set a %NULL.</doc>
        <source-position filename="src/grl-operation-options.h" line="148"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="options" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="src/grl-operation-options.c"
                 line="894">a #GrlOperationOptions instance</doc>
            <type name="OperationOptions" c:type="GrlOperationOptions*"/>
          </instance-parameter>
          <parameter name="key" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="src/grl-operation-options.c"
                 line="895">a #GrlKeyID</doc>
            <type name="KeyID" c:type="GrlKeyID"/>
          </parameter>
          <parameter name="min_value"
                     direction="out"
                     caller-allocates="0"
                     transfer-ownership="none"
                     optional="1"
                     allow-none="1">
            <doc xml:space="preserve"
                 filename="src/grl-operation-options.c"
                 line="896">the minimum value for the range</doc>
            <type name="GObject.Value" c:type="GValue**"/>
          </parameter>
          <parameter name="max_value"
                     direction="out"
                     caller-allocates="0"
                     transfer-ownership="none"
                     optional="1"
                     allow-none="1">
            <doc xml:space="preserve"
                 filename="src/grl-operation-options.c"
                 line="897">the maximum value for the range</doc>
            <type name="GObject.Value" c:type="GValue**"/>
          </parameter>
        </parameters>
      </method>
      <method name="get_key_range_filter_list"
              c:identifier="grl_operation_options_get_key_range_filter_list"
              version="0.2.0">
        <source-position filename="src/grl-operation-options.h" line="154"/>
        <return-value transfer-ownership="container">
          <type name="GLib.List" c:type="GList*">
            <type name="KeyID"/>
          </type>
        </return-value>
        <parameters>
          <instance-parameter name="options" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="src/grl-operation-options.c"
                 line="933">a #GrlOperationOptions instance</doc>
            <type name="OperationOptions" c:type="GrlOperationOptions*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_resolution_flags"
              c:identifier="grl_operation_options_get_resolution_flags"
              version="0.2.12">
        <source-position filename="src/grl-operation-options.h" line="118"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="src/grl-operation-options.c"
               line="447">resolution flags of @options.</doc>
          <type name="ResolutionFlags" c:type="GrlResolutionFlags"/>
        </return-value>
        <parameters>
          <instance-parameter name="options" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="src/grl-operation-options.c"
                 line="445">a #GrlOperationOptions instance</doc>
            <type name="OperationOptions" c:type="GrlOperationOptions*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_skip"
              c:identifier="grl_operation_options_get_skip"
              version="0.2.0">
        <doc xml:space="preserve"
             filename="src/grl-operation-options.c"
             line="341">Get the skip option, that is, the number of elements to skip before
retrieving media items in an operation done with @options.</doc>
        <source-position filename="src/grl-operation-options.h" line="110"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="src/grl-operation-options.c"
               line="348">the value of the skip option, or a default value if it is not set.</doc>
          <type name="guint" c:type="guint"/>
        </return-value>
        <parameters>
          <instance-parameter name="options" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="src/grl-operation-options.c"
                 line="343">a #GrlOperationOptions instance</doc>
            <type name="OperationOptions" c:type="GrlOperationOptions*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_type_filter"
              c:identifier="grl_operation_options_get_type_filter"
              version="0.2.0">
        <source-position filename="src/grl-operation-options.h" line="123"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="src/grl-operation-options.c"
               line="508">resolution flags of @options</doc>
          <type name="TypeFilter" c:type="GrlTypeFilter"/>
        </return-value>
        <parameters>
          <instance-parameter name="options" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="src/grl-operation-options.c"
                 line="505">a #GrlOperationOptions instance</doc>
            <type name="OperationOptions" c:type="GrlOperationOptions*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="obey_caps"
              c:identifier="grl_operation_options_obey_caps"
              version="0.2.0">
        <doc xml:space="preserve"
             filename="src/grl-operation-options.c"
             line="171">Check whether @options obey to @caps.
Optionally provide the options that match (respectively don't match) @caps
in @supported_options (respectively @unsupported_options).
This would typically (but not necessarily) be used with a
#GrlOperationOptions instance that was created with %NULL caps.</doc>
        <source-position filename="src/grl-operation-options.h" line="102"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="src/grl-operation-options.c"
               line="188">%TRUE if @options obey to @caps, %FALSE otherwise.</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <instance-parameter name="options" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="src/grl-operation-options.c"
                 line="173">a #GrlOperationOptions instance</doc>
            <type name="OperationOptions" c:type="GrlOperationOptions*"/>
          </instance-parameter>
          <parameter name="caps" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="src/grl-operation-options.c"
                 line="174">capabilities against which we want to test @options</doc>
            <type name="Caps" c:type="GrlCaps*"/>
          </parameter>
          <parameter name="supported_options"
                     direction="out"
                     caller-allocates="0"
                     transfer-ownership="full">
            <doc xml:space="preserve"
                 filename="src/grl-operation-options.c"
                 line="175">if not %NULL, will contain a
newly-allocated #GrlOperationOptions instance containing all the values of
@options that match @caps.</doc>
            <type name="OperationOptions" c:type="GrlOperationOptions**"/>
          </parameter>
          <parameter name="unsupported_options"
                     direction="out"
                     caller-allocates="0"
                     transfer-ownership="full">
            <doc xml:space="preserve"
                 filename="src/grl-operation-options.c"
                 line="178">if not %NULL, will contain a
newly-allocated #GrlOperationOptions instance containing all the values of
@options that do not match @caps.</doc>
            <type name="OperationOptions" c:type="GrlOperationOptions**"/>
          </parameter>
        </parameters>
      </method>
      <method name="set_count"
              c:identifier="grl_operation_options_set_count"
              version="0.2.0">
        <doc xml:space="preserve"
             filename="src/grl-operation-options.c"
             line="364">Set the count option for an operation. Will only succeed if @count obey to
the inherent capabilities of @options.</doc>
        <source-position filename="src/grl-operation-options.h" line="112"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="src/grl-operation-options.c"
               line="372">%TRUE if @count could be set, %FALSE otherwise.</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <instance-parameter name="options" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="src/grl-operation-options.c"
                 line="366">a #GrlOperationOptions instance</doc>
            <type name="OperationOptions" c:type="GrlOperationOptions*"/>
          </instance-parameter>
          <parameter name="count" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="src/grl-operation-options.c"
                 line="367">number of elements to retrieve in an operation</doc>
            <type name="gint" c:type="gint"/>
          </parameter>
        </parameters>
      </method>
      <method name="set_key_filter_dictionary"
              c:identifier="grl_operation_options_set_key_filter_dictionary"
              shadows="set_key_filters"
              version="0.2.0">
        <source-position filename="src/grl-operation-options.h" line="132"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="src/grl-operation-options.c"
               line="641">%TRUE on success</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <instance-parameter name="options" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="src/grl-operation-options.c"
                 line="638">a #GrlOperationOptions instance</doc>
            <type name="OperationOptions" c:type="GrlOperationOptions*"/>
          </instance-parameter>
          <parameter name="filters" transfer-ownership="none">
            <type name="GLib.HashTable" c:type="GHashTable*">
              <type name="KeyID"/>
              <type name="GObject.Value"/>
            </type>
          </parameter>
        </parameters>
      </method>
      <method name="set_key_filter_value"
              c:identifier="grl_operation_options_set_key_filter_value"
              version="0.2.0">
        <doc xml:space="preserve"
             filename="src/grl-operation-options.c"
             line="525">Set filter as "@key == @value".</doc>
        <source-position filename="src/grl-operation-options.h" line="125"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="src/grl-operation-options.c"
               line="533">%TRUE on success</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <instance-parameter name="options" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="src/grl-operation-options.c"
                 line="527">a #GrlOperationOptions instance</doc>
            <type name="OperationOptions" c:type="GrlOperationOptions*"/>
          </instance-parameter>
          <parameter name="key" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="src/grl-operation-options.c"
                 line="528">a #GrlKeyID</doc>
            <type name="KeyID" c:type="GrlKeyID"/>
          </parameter>
          <parameter name="value" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="src/grl-operation-options.c"
                 line="529">a #GValue</doc>
            <type name="GObject.Value" c:type="GValue*"/>
          </parameter>
        </parameters>
      </method>
      <method name="set_key_filters"
              c:identifier="grl_operation_options_set_key_filters"
              shadowed-by="set_key_filter_dictionary"
              version="0.2.0"
              introspectable="0">
        <doc xml:space="preserve"
             filename="src/grl-operation-options.c"
             line="569">Set filter as "k1 == v1 AND k2 == v2 AND ..."

&lt;example&gt;
 Elements from album "Frozen" with a bitrate of 256kbs.
 &lt;programlisting&gt;
  grl_operation_options_set_key_filters (my_options,
                                         GRL_METADATA_KEY_ALBUM, "Frozen",
                                         GRL_METADATA_KEY_BITRATE, 256,
                                         NULL);
 &lt;/programlisting&gt;
&lt;/example&gt;</doc>
        <source-position filename="src/grl-operation-options.h" line="129"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="src/grl-operation-options.c"
               line="586">%TRUE on success</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <instance-parameter name="options" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="src/grl-operation-options.c"
                 line="571">a #GrlOperationOptions instance</doc>
            <type name="OperationOptions" c:type="GrlOperationOptions*"/>
          </instance-parameter>
          <parameter name="..." transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="src/grl-operation-options.c"
                 line="572">pairs of #GrlKeyID, value</doc>
            <varargs/>
          </parameter>
        </parameters>
      </method>
      <method name="set_key_range_filter"
              c:identifier="grl_operation_options_set_key_range_filter"
              version="0.2.0"
              introspectable="0">
        <doc xml:space="preserve"
             filename="src/grl-operation-options.c"
             line="769">Set filter as "min1 &lt;= k1 &lt;= max1 AND min2 &lt;= k2 &lt;= max2 AND ..."

For non numeric types, the range can be open if some of the minX, maxX
values are %NULL. Leaving NULL for numeric types leads to underifned
behavior.

&lt;example&gt;
 Album must start with "T" and the bitrate should be 256kbs or greater.
 &lt;programlisting&gt;
  grl_operation_options_set_key_range_filters (my_options,
                                               GRL_METADATA_KEY_ALBUM, "Ta", "Tz",
                                               GRL_METADATA_KEY_BITRATE, 256, G_MAXINT,
                                               NULL);
 &lt;/programlisting&gt;
&lt;/example&gt;</doc>
        <source-position filename="src/grl-operation-options.h" line="145"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="src/grl-operation-options.c"
               line="790">%TRUE on success</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <instance-parameter name="options" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="src/grl-operation-options.c"
                 line="771">a #GrlOperationOptions instance</doc>
            <type name="OperationOptions" c:type="GrlOperationOptions*"/>
          </instance-parameter>
          <parameter name="..." transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="src/grl-operation-options.c"
                 line="772">triplets of #GrlKeyID, minvalue, maxvalue</doc>
            <varargs/>
          </parameter>
        </parameters>
      </method>
      <method name="set_key_range_filter_value"
              c:identifier="grl_operation_options_set_key_range_filter_value"
              version="0.2.0">
        <doc xml:space="preserve"
             filename="src/grl-operation-options.c"
             line="695">Set filter as "@min_value &lt;= @key &lt;= @max_value".

If @min_value is %NULL, then filter is "@key &lt;= @max_value".

If @max_value is %NULL, then filter is "@key &gt;= @min_value".

Note that @key will always respect the limits defined at creation time.
e.g: Core's GRL_METADATA_KEY_ORIENTATION has "max = 359" and "min = 0",
user can set "@max_value = 180" but "@max_value = 720" would be ignored.</doc>
        <source-position filename="src/grl-operation-options.h" line="140"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="src/grl-operation-options.c"
               line="712">%TRUE on success</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <instance-parameter name="options" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="src/grl-operation-options.c"
                 line="697">a #GrlOperationOptions instance</doc>
            <type name="OperationOptions" c:type="GrlOperationOptions*"/>
          </instance-parameter>
          <parameter name="key" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="src/grl-operation-options.c"
                 line="698">a #GrlKeyID</doc>
            <type name="KeyID" c:type="GrlKeyID"/>
          </parameter>
          <parameter name="min_value"
                     transfer-ownership="none"
                     nullable="1"
                     allow-none="1">
            <doc xml:space="preserve"
                 filename="src/grl-operation-options.c"
                 line="699">minimum value for range</doc>
            <type name="GObject.Value" c:type="GValue*"/>
          </parameter>
          <parameter name="max_value"
                     transfer-ownership="none"
                     nullable="1"
                     allow-none="1">
            <doc xml:space="preserve"
                 filename="src/grl-operation-options.c"
                 line="700">maximum value for range</doc>
            <type name="GObject.Value" c:type="GValue*"/>
          </parameter>
        </parameters>
      </method>
      <method name="set_resolution_flags"
              c:identifier="grl_operation_options_set_resolution_flags"
              version="0.2.12">
        <doc xml:space="preserve"
             filename="src/grl-operation-options.c"
             line="414">Set the resolution flags for an operation. Will only succeed if @flags obey
to the inherent capabilities of @options.</doc>
        <source-position filename="src/grl-operation-options.h" line="115"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="src/grl-operation-options.c"
               line="423">%TRUE if @flags could be set, %FALSE otherwise.</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <instance-parameter name="options" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="src/grl-operation-options.c"
                 line="416">a #GrlOperationOptions instance</doc>
            <type name="OperationOptions" c:type="GrlOperationOptions*"/>
          </instance-parameter>
          <parameter name="flags" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="src/grl-operation-options.c"
                 line="417">the resolution flags to be set for an operation. See
#GrlResolutionFlags for possible values.</doc>
            <type name="ResolutionFlags" c:type="GrlResolutionFlags"/>
          </parameter>
        </parameters>
      </method>
      <method name="set_skip"
              c:identifier="grl_operation_options_set_skip"
              version="0.2.0">
        <doc xml:space="preserve"
             filename="src/grl-operation-options.c"
             line="313">Set the skip option for an operation. Will only succeed if @skip obeys to the
inherent capabilities of @options.</doc>
        <source-position filename="src/grl-operation-options.h" line="109"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="src/grl-operation-options.c"
               line="321">%TRUE if @skip could be set, %FALSE otherwise.</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <instance-parameter name="options" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="src/grl-operation-options.c"
                 line="315">a #GrlOperationOptions instance</doc>
            <type name="OperationOptions" c:type="GrlOperationOptions*"/>
          </instance-parameter>
          <parameter name="skip" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="src/grl-operation-options.c"
                 line="316">number of elements to skip in an operation</doc>
            <type name="guint" c:type="guint"/>
          </parameter>
        </parameters>
      </method>
      <method name="set_type_filter"
              c:identifier="grl_operation_options_set_type_filter"
              version="0.2.0">
        <doc xml:space="preserve"
             filename="src/grl-operation-options.c"
             line="468">Set the type of media filter for an operation. Only those media elements that
match the @filter will be returned. Will only succeed if @filter obey to the
inherent capabilities of @options.</doc>
        <source-position filename="src/grl-operation-options.h" line="120"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="src/grl-operation-options.c"
               line="477">%TRUE if @flags could be set, %FALSE otherwise</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <instance-parameter name="options" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="src/grl-operation-options.c"
                 line="470">a #GrlOperationOptions instance</doc>
            <type name="OperationOptions" c:type="GrlOperationOptions*"/>
          </instance-parameter>
          <parameter name="filter" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="src/grl-operation-options.c"
                 line="471">the type of media to get</doc>
            <type name="TypeFilter" c:type="GrlTypeFilter"/>
          </parameter>
        </parameters>
      </method>
      <field name="parent">
        <type name="GObject.Object" c:type="GObject"/>
      </field>
      <field name="priv" readable="0" private="1">
        <type name="OperationOptionsPrivate"
              c:type="GrlOperationOptionsPrivate*"/>
      </field>
      <field name="_grl_reserved" readable="0" private="1">
        <array zero-terminated="0" fixed-size="8">
          <type name="gpointer" c:type="gpointer"/>
        </array>
      </field>
    </class>
    <record name="OperationOptionsClass"
            c:type="GrlOperationOptionsClass"
            glib:is-gtype-struct-for="OperationOptions">
      <doc xml:space="preserve"
           filename="src/grl-operation-options.h"
           line="46">Grilo Operation Options class.</doc>
      <source-position filename="src/grl-operation-options.h" line="57"/>
      <field name="parent">
        <doc xml:space="preserve"
             filename="src/grl-operation-options.h"
             line="48">the parent class structure</doc>
        <type name="GObject.ObjectClass" c:type="GObjectClass"/>
      </field>
      <field name="_grl_reserved" readable="0" private="1">
        <array zero-terminated="0" fixed-size="16">
          <type name="gpointer" c:type="gpointer"/>
        </array>
      </field>
    </record>
    <record name="OperationOptionsPrivate"
            c:type="GrlOperationOptionsPrivate"
            disguised="1"
            opaque="1">
      <source-position filename="src/grl-operation-options.h" line="35"/>
    </record>
    <constant name="PADDING" value="16" c:type="GRL_PADDING">
      <source-position filename="src/grl-definitions.h" line="32"/>
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="PADDING_SMALL" value="8" c:type="GRL_PADDING_SMALL">
      <source-position filename="src/grl-definitions.h" line="36"/>
      <type name="gint" c:type="gint"/>
    </constant>
    <function-macro name="PLUGIN" c:identifier="GRL_PLUGIN" introspectable="0">
      <source-position filename="src/grl-plugin.h" line="49"/>
      <parameters>
        <parameter name="obj">
        </parameter>
      </parameters>
    </function-macro>
    <constant name="PLUGIN_AUTHOR" value="author" c:type="GRL_PLUGIN_AUTHOR">
      <source-position filename="src/grl-plugin.h" line="42"/>
      <type name="utf8" c:type="gchar*"/>
    </constant>
    <function-macro name="PLUGIN_CLASS"
                    c:identifier="GRL_PLUGIN_CLASS"
                    introspectable="0">
      <source-position filename="src/grl-plugin.h" line="58"/>
      <parameters>
        <parameter name="klass">
        </parameter>
      </parameters>
    </function-macro>
    <function-macro name="PLUGIN_DEFINE"
                    c:identifier="GRL_PLUGIN_DEFINE"
                    version="0.3.0"
                    introspectable="0">
      <source-position filename="src/grl-registry.h" line="94"/>
      <parameters>
        <parameter name="major">
          <doc xml:space="preserve"
               filename="src/grl-registry.h"
               line="77">the major version number of core that plugin was compiled for, as an integer</doc>
        </parameter>
        <parameter name="minor">
          <doc xml:space="preserve"
               filename="src/grl-registry.h"
               line="78">the minor version number of core that plugin was compiled for, as an integer</doc>
        </parameter>
        <parameter name="id">
          <doc xml:space="preserve"
               filename="src/grl-registry.h"
               line="79">the plugin identifier</doc>
        </parameter>
        <parameter name="name">
          <doc xml:space="preserve"
               filename="src/grl-registry.h"
               line="80">name of plugin</doc>
        </parameter>
        <parameter name="description">
          <doc xml:space="preserve"
               filename="src/grl-registry.h"
               line="81">description of plugin</doc>
        </parameter>
        <parameter name="author">
          <doc xml:space="preserve"
               filename="src/grl-registry.h"
               line="82">author of plugin</doc>
        </parameter>
        <parameter name="version">
          <doc xml:space="preserve"
               filename="src/grl-registry.h"
               line="83">version of plugin</doc>
        </parameter>
        <parameter name="license">
          <doc xml:space="preserve"
               filename="src/grl-registry.h"
               line="84">license of plugin</doc>
        </parameter>
        <parameter name="site">
          <doc xml:space="preserve"
               filename="src/grl-registry.h"
               line="85">URL to provider of plugin</doc>
        </parameter>
        <parameter name="init">
          <doc xml:space="preserve"
               filename="src/grl-registry.h"
               line="86">the module initialization. It shall instantiate
the #GrlPlugins provided</doc>
        </parameter>
        <parameter name="deinit">
          <doc xml:space="preserve"
               filename="src/grl-registry.h"
               line="88">function to execute when the registry needs to dispose
the module.</doc>
        </parameter>
        <parameter name="register_keys">
          <doc xml:space="preserve"
               filename="src/grl-registry.h"
               line="90">function to execute before loading the
plugin. It's aim is to register new keys</doc>
        </parameter>
      </parameters>
    </function-macro>
    <constant name="PLUGIN_DESCRIPTION"
              value="description"
              c:type="GRL_PLUGIN_DESCRIPTION">
      <source-position filename="src/grl-plugin.h" line="39"/>
      <type name="utf8" c:type="gchar*"/>
    </constant>
    <function-macro name="PLUGIN_GET_CLASS"
                    c:identifier="GRL_PLUGIN_GET_CLASS"
                    introspectable="0">
      <source-position filename="src/grl-plugin.h" line="67"/>
      <parameters>
        <parameter name="obj">
        </parameter>
      </parameters>
    </function-macro>
    <constant name="PLUGIN_LICENSE"
              value="license"
              c:type="GRL_PLUGIN_LICENSE">
      <source-position filename="src/grl-plugin.h" line="41"/>
      <type name="utf8" c:type="gchar*"/>
    </constant>
    <constant name="PLUGIN_LIST_VAR"
              value="GRL_PLUGIN_LIST"
              c:type="GRL_PLUGIN_LIST_VAR">
      <source-position filename="src/grl-registry.h" line="41"/>
      <type name="utf8" c:type="gchar*"/>
    </constant>
    <constant name="PLUGIN_NAME" value="name" c:type="GRL_PLUGIN_NAME">
      <source-position filename="src/grl-plugin.h" line="38"/>
      <type name="utf8" c:type="gchar*"/>
    </constant>
    <constant name="PLUGIN_PATH_VAR"
              value="GRL_PLUGIN_PATH"
              c:type="GRL_PLUGIN_PATH_VAR">
      <source-position filename="src/grl-registry.h" line="40"/>
      <type name="utf8" c:type="gchar*"/>
    </constant>
    <constant name="PLUGIN_RANKS_VAR"
              value="GRL_PLUGIN_RANKS"
              c:type="GRL_PLUGIN_RANKS_VAR">
      <source-position filename="src/grl-registry.h" line="42"/>
      <type name="utf8" c:type="gchar*"/>
    </constant>
    <constant name="PLUGIN_SITE" value="site" c:type="GRL_PLUGIN_SITE">
      <source-position filename="src/grl-plugin.h" line="43"/>
      <type name="utf8" c:type="gchar*"/>
    </constant>
    <constant name="PLUGIN_VERSION"
              value="version"
              c:type="GRL_PLUGIN_VERSION">
      <source-position filename="src/grl-plugin.h" line="40"/>
      <type name="utf8" c:type="gchar*"/>
    </constant>
    <class name="Plugin"
           c:symbol-prefix="plugin"
           c:type="GrlPlugin"
           parent="GObject.Object"
           glib:type-name="GrlPlugin"
           glib:get-type="grl_plugin_get_type"
           glib:type-struct="PluginClass">
      <source-position filename="src/grl-plugin.h" line="104"/>
      <method name="get_author"
              c:identifier="grl_plugin_get_author"
              version="0.2.0">
        <doc xml:space="preserve"
             filename="src/grl-plugin.c"
             line="427">Get the author of the plugin</doc>
        <source-position filename="src/grl-plugin.h" line="120"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="src/grl-plugin.c"
               line="433">the author of the @plugin</doc>
          <type name="utf8" c:type="const gchar*"/>
        </return-value>
        <parameters>
          <instance-parameter name="plugin" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="src/grl-plugin.c"
                 line="429">a plugin</doc>
            <type name="Plugin" c:type="GrlPlugin*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_description"
              c:identifier="grl_plugin_get_description"
              version="0.2.0">
        <doc xml:space="preserve"
             filename="src/grl-plugin.c"
             line="373">Get the description of the plugin</doc>
        <source-position filename="src/grl-plugin.h" line="114"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="src/grl-plugin.c"
               line="379">the description of the @plugin</doc>
          <type name="utf8" c:type="const gchar*"/>
        </return-value>
        <parameters>
          <instance-parameter name="plugin" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="src/grl-plugin.c"
                 line="375">a plugin</doc>
            <type name="Plugin" c:type="GrlPlugin*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_filename"
              c:identifier="grl_plugin_get_filename"
              version="0.2.0">
        <doc xml:space="preserve"
             filename="src/grl-plugin.c"
             line="481">Get the filename containing the plugin</doc>
        <source-position filename="src/grl-plugin.h" line="126"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="src/grl-plugin.c"
               line="487">the filename containing @plugin</doc>
          <type name="utf8" c:type="const gchar*"/>
        </return-value>
        <parameters>
          <instance-parameter name="plugin" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="src/grl-plugin.c"
                 line="483">a plugin</doc>
            <type name="Plugin" c:type="GrlPlugin*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_id" c:identifier="grl_plugin_get_id" version="0.2.0">
        <doc xml:space="preserve"
             filename="src/grl-plugin.c"
             line="463">Get the id of the plugin</doc>
        <source-position filename="src/grl-plugin.h" line="124"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="src/grl-plugin.c"
               line="469">the id of the @plugin</doc>
          <type name="utf8" c:type="const gchar*"/>
        </return-value>
        <parameters>
          <instance-parameter name="plugin" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="src/grl-plugin.c"
                 line="465">a plugin</doc>
            <type name="Plugin" c:type="GrlPlugin*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_license"
              c:identifier="grl_plugin_get_license"
              version="0.2.0">
        <doc xml:space="preserve"
             filename="src/grl-plugin.c"
             line="409">Get the license of the plugin</doc>
        <source-position filename="src/grl-plugin.h" line="118"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="src/grl-plugin.c"
               line="415">the license of the @plugin</doc>
          <type name="utf8" c:type="const gchar*"/>
        </return-value>
        <parameters>
          <instance-parameter name="plugin" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="src/grl-plugin.c"
                 line="411">a plugin</doc>
            <type name="Plugin" c:type="GrlPlugin*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_module"
              c:identifier="grl_plugin_get_module"
              version="0.2.0"
              introspectable="0">
        <doc xml:space="preserve"
             filename="src/grl-plugin.c"
             line="517">Gets the #GModule containing the plugin</doc>
        <source-position filename="src/grl-plugin.h" line="130"/>
        <return-value>
          <doc xml:space="preserve"
               filename="src/grl-plugin.c"
               line="523">a #GModule</doc>
          <type name="GModule.Module" c:type="GModule*"/>
        </return-value>
        <parameters>
          <instance-parameter name="plugin" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="src/grl-plugin.c"
                 line="519">a plugin</doc>
            <type name="Plugin" c:type="GrlPlugin*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_module_name"
              c:identifier="grl_plugin_get_module_name"
              version="0.3.0">
        <doc xml:space="preserve"
             filename="src/grl-plugin.c"
             line="499">Get the plugin module name</doc>
        <source-position filename="src/grl-plugin.h" line="128"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="src/grl-plugin.c"
               line="505">the module name containing @plugin</doc>
          <type name="utf8" c:type="const gchar*"/>
        </return-value>
        <parameters>
          <instance-parameter name="plugin" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="src/grl-plugin.c"
                 line="501">a plugin</doc>
            <type name="Plugin" c:type="GrlPlugin*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_name"
              c:identifier="grl_plugin_get_name"
              version="0.2.0">
        <doc xml:space="preserve"
             filename="src/grl-plugin.c"
             line="355">Get the name of the plugin</doc>
        <source-position filename="src/grl-plugin.h" line="112"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="src/grl-plugin.c"
               line="361">the name of the @plugin</doc>
          <type name="utf8" c:type="const gchar*"/>
        </return-value>
        <parameters>
          <instance-parameter name="plugin" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="src/grl-plugin.c"
                 line="357">a plugin</doc>
            <type name="Plugin" c:type="GrlPlugin*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_site"
              c:identifier="grl_plugin_get_site"
              version="0.2.0">
        <doc xml:space="preserve"
             filename="src/grl-plugin.c"
             line="445">Get the site of the plugin</doc>
        <source-position filename="src/grl-plugin.h" line="122"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="src/grl-plugin.c"
               line="451">the site of the @plugin</doc>
          <type name="utf8" c:type="const gchar*"/>
        </return-value>
        <parameters>
          <instance-parameter name="plugin" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="src/grl-plugin.c"
                 line="447">a plugin</doc>
            <type name="Plugin" c:type="GrlPlugin*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_sources"
              c:identifier="grl_plugin_get_sources"
              version="0.2.0">
        <doc xml:space="preserve"
             filename="src/grl-plugin.c"
             line="535">Gets the sources belonging to @plugin.</doc>
        <source-position filename="src/grl-plugin.h" line="132"/>
        <return-value transfer-ownership="container">
          <doc xml:space="preserve"
               filename="src/grl-plugin.c"
               line="541">a #GList of
#GrlSource&lt;!-- --&gt;s. The content of the list should not be modified or
freed. Use g_list_free() when done using the list.</doc>
          <type name="GLib.List" c:type="GList*">
            <type name="Source"/>
          </type>
        </return-value>
        <parameters>
          <instance-parameter name="plugin" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="src/grl-plugin.c"
                 line="537">a plugin</doc>
            <type name="Plugin" c:type="GrlPlugin*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_version"
              c:identifier="grl_plugin_get_version"
              version="0.2.0">
        <doc xml:space="preserve"
             filename="src/grl-plugin.c"
             line="391">Get the version of the plugin</doc>
        <source-position filename="src/grl-plugin.h" line="116"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="src/grl-plugin.c"
               line="397">the version of the @plugin</doc>
          <type name="utf8" c:type="const gchar*"/>
        </return-value>
        <parameters>
          <instance-parameter name="plugin" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="src/grl-plugin.c"
                 line="393">a plugin</doc>
            <type name="Plugin" c:type="GrlPlugin*"/>
          </instance-parameter>
        </parameters>
      </method>
      <property name="loaded"
                version="0.2.0"
                transfer-ownership="none"
                default-value="FALSE">
        <doc xml:space="preserve"
             filename="src/grl-plugin.c"
             line="88">@TRUE if plugin is loaded.</doc>
        <type name="gboolean" c:type="gboolean"/>
      </property>
      <field name="parent">
        <type name="GObject.Object" c:type="GObject"/>
      </field>
      <field name="priv" readable="0" private="1">
        <type name="PluginPrivate" c:type="GrlPluginPrivate*"/>
      </field>
      <field name="_grl_reserved" readable="0" private="1">
        <array zero-terminated="0" fixed-size="16">
          <type name="gpointer" c:type="gpointer"/>
        </array>
      </field>
    </class>
    <record name="PluginClass"
            c:type="GrlPluginClass"
            glib:is-gtype-struct-for="Plugin">
      <source-position filename="src/grl-plugin.h" line="104"/>
      <field name="parent_class">
        <doc xml:space="preserve"
             filename="src/grl-plugin.h"
             line="96">the parent class structure</doc>
        <type name="GObject.ObjectClass" c:type="GObjectClass"/>
      </field>
      <field name="_grl_reserved" readable="0" private="1">
        <array zero-terminated="0" fixed-size="16">
          <type name="gpointer" c:type="gpointer"/>
        </array>
      </field>
    </record>
    <callback name="PluginDeinitFunc" c:type="GrlPluginDeinitFunc">
      <source-position filename="src/grl-registry.h" line="121"/>
      <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="GrlPlugin*"/>
        </parameter>
      </parameters>
    </callback>
    <record name="PluginDescriptor"
            c:type="GrlPluginDescriptor"
            version="0.3.0">
      <doc xml:space="preserve"
           filename="src/grl-registry.h"
           line="126">This structure is used for the module loader</doc>
      <source-position filename="src/grl-registry.h" line="165"/>
      <field name="major_version" writable="1">
        <doc xml:space="preserve"
             filename="src/grl-registry.h"
             line="128">the major version number of core that plugin was compiled for</doc>
        <type name="gint" c:type="gint"/>
      </field>
      <field name="minor_version" writable="1">
        <doc xml:space="preserve"
             filename="src/grl-registry.h"
             line="129">the minor version number of core that plugin was compiled for</doc>
        <type name="gint" c:type="gint"/>
      </field>
      <field name="id" writable="1">
        <doc xml:space="preserve"
             filename="src/grl-registry.h"
             line="130">the plugin identifier</doc>
        <type name="utf8" c:type="gchar*"/>
      </field>
      <field name="name" writable="1">
        <doc xml:space="preserve"
             filename="src/grl-registry.h"
             line="131">name of plugin</doc>
        <type name="utf8" c:type="gchar*"/>
      </field>
      <field name="description" writable="1">
        <doc xml:space="preserve"
             filename="src/grl-registry.h"
             line="132">description of plugin</doc>
        <type name="utf8" c:type="gchar*"/>
      </field>
      <field name="author" writable="1">
        <doc xml:space="preserve"
             filename="src/grl-registry.h"
             line="133">author of plugin</doc>
        <type name="utf8" c:type="gchar*"/>
      </field>
      <field name="version" writable="1">
        <doc xml:space="preserve"
             filename="src/grl-registry.h"
             line="134">version of plugin</doc>
        <type name="utf8" c:type="gchar*"/>
      </field>
      <field name="license" writable="1">
        <doc xml:space="preserve"
             filename="src/grl-registry.h"
             line="135">license of plugin</doc>
        <type name="utf8" c:type="gchar*"/>
      </field>
      <field name="site" writable="1">
        <doc xml:space="preserve"
             filename="src/grl-registry.h"
             line="136">URL to provider of plugin</doc>
        <type name="utf8" c:type="gchar*"/>
      </field>
      <field name="init" introspectable="0" writable="1">
        <doc xml:space="preserve"
             filename="src/grl-registry.h"
             line="137">the module initialization. It shall instantiate
the #GrlPlugins provided</doc>
        <type name="PluginInitFunc" c:type="GrlPluginInitFunc"/>
      </field>
      <field name="deinit" writable="1">
        <doc xml:space="preserve"
             filename="src/grl-registry.h"
             line="139">function to execute when the registry needs
to dispose the module.</doc>
        <type name="PluginDeinitFunc" c:type="GrlPluginDeinitFunc"/>
      </field>
      <field name="register_keys" writable="1">
        <doc xml:space="preserve"
             filename="src/grl-registry.h"
             line="141">function to execute before loading the plugin. It's aim
is to register new keys</doc>
        <type name="PluginRegisterKeysFunc"
              c:type="GrlPluginRegisterKeysFunc"/>
      </field>
      <field name="_grl_reserved" readable="0" private="1">
        <array zero-terminated="0" fixed-size="16">
          <type name="gpointer" c:type="gpointer"/>
        </array>
      </field>
    </record>
    <callback name="PluginInitFunc"
              c:type="GrlPluginInitFunc"
              introspectable="0">
      <source-position filename="src/grl-registry.h" line="117"/>
      <return-value transfer-ownership="none">
        <type name="gboolean" c:type="gboolean"/>
      </return-value>
      <parameters>
        <parameter name="registry" transfer-ownership="none">
          <type name="Registry" c:type="GrlRegistry*"/>
        </parameter>
        <parameter name="plugin" transfer-ownership="none">
          <type name="Plugin" c:type="GrlPlugin*"/>
        </parameter>
        <parameter name="configs" transfer-ownership="none">
          <type name="GLib.List" c:type="GList*">
            <type name="gpointer" c:type="gpointer"/>
          </type>
        </parameter>
      </parameters>
    </callback>
    <record name="PluginPrivate"
            c:type="GrlPluginPrivate"
            disguised="1"
            opaque="1">
      <source-position filename="src/grl-plugin.h" line="76"/>
    </record>
    <callback name="PluginRegisterKeysFunc" c:type="GrlPluginRegisterKeysFunc">
      <source-position filename="src/grl-registry.h" line="123"/>
      <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="GrlRegistry*"/>
        </parameter>
        <parameter name="plugin" transfer-ownership="none">
          <type name="Plugin" c:type="GrlPlugin*"/>
        </parameter>
      </parameters>
    </callback>
    <function-macro name="REGISTRY"
                    c:identifier="GRL_REGISTRY"
                    introspectable="0">
      <source-position filename="src/grl-registry.h" line="49"/>
      <parameters>
        <parameter name="obj">
        </parameter>
      </parameters>
    </function-macro>
    <function-macro name="REGISTRY_CLASS"
                    c:identifier="GRL_REGISTRY_CLASS"
                    introspectable="0">
      <source-position filename="src/grl-registry.h" line="58"/>
      <parameters>
        <parameter name="klass">
        </parameter>
      </parameters>
    </function-macro>
    <function-macro name="REGISTRY_GET_CLASS"
                    c:identifier="GRL_REGISTRY_GET_CLASS"
                    introspectable="0">
      <source-position filename="src/grl-registry.h" line="67"/>
      <parameters>
        <parameter name="obj">
        </parameter>
      </parameters>
    </function-macro>
    <function-macro name="RELATED_KEYS"
                    c:identifier="GRL_RELATED_KEYS"
                    introspectable="0">
      <source-position filename="src/data/grl-related-keys.h" line="40"/>
      <parameters>
        <parameter name="obj">
        </parameter>
      </parameters>
    </function-macro>
    <function-macro name="RELATED_KEYS_CLASS"
                    c:identifier="GRL_RELATED_KEYS_CLASS"
                    introspectable="0">
      <source-position filename="src/data/grl-related-keys.h" line="45"/>
      <parameters>
        <parameter name="klass">
        </parameter>
      </parameters>
    </function-macro>
    <function-macro name="RELATED_KEYS_GET_CLASS"
                    c:identifier="GRL_RELATED_KEYS_GET_CLASS"
                    introspectable="0">
      <source-position filename="src/data/grl-related-keys.h" line="58"/>
      <parameters>
        <parameter name="obj">
        </parameter>
      </parameters>
    </function-macro>
    <record name="RangeValue"
            c:type="GrlRangeValue"
            glib:type-name="GrlRangeValue"
            glib:get-type="grl_range_value_get_type"
            c:symbol-prefix="range_value">
      <source-position filename="src/grl-range-value.h" line="35"/>
      <field name="min" writable="1">
        <type name="GObject.Value" c:type="GValue*"/>
      </field>
      <field name="max" writable="1">
        <type name="GObject.Value" c:type="GValue*"/>
      </field>
      <constructor name="new" c:identifier="grl_range_value_new">
        <source-position filename="src/grl-range-value.h" line="39"/>
        <return-value transfer-ownership="full">
          <type name="RangeValue" c:type="GrlRangeValue*"/>
        </return-value>
        <parameters>
          <parameter name="min" transfer-ownership="none">
            <type name="GObject.Value" c:type="GValue*"/>
          </parameter>
          <parameter name="max" transfer-ownership="none">
            <type name="GObject.Value" c:type="GValue*"/>
          </parameter>
        </parameters>
      </constructor>
      <method name="dup" c:identifier="grl_range_value_dup">
        <source-position filename="src/grl-range-value.h" line="46"/>
        <return-value transfer-ownership="full">
          <type name="RangeValue" c:type="GrlRangeValue*"/>
        </return-value>
        <parameters>
          <instance-parameter name="range" transfer-ownership="none">
            <type name="RangeValue" c:type="const GrlRangeValue*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="free" c:identifier="grl_range_value_free">
        <source-position filename="src/grl-range-value.h" line="42"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="range" transfer-ownership="none">
            <type name="RangeValue" c:type="GrlRangeValue*"/>
          </instance-parameter>
        </parameters>
      </method>
      <function name="hashtable_insert"
                c:identifier="grl_range_value_hashtable_insert">
        <source-position filename="src/grl-range-value.h" line="48"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <parameter name="hash_table" transfer-ownership="none">
            <type name="GLib.HashTable" c:type="GHashTable*">
              <type name="gpointer" c:type="gpointer"/>
              <type name="gpointer" c:type="gpointer"/>
            </type>
          </parameter>
          <parameter name="key"
                     transfer-ownership="none"
                     nullable="1"
                     allow-none="1">
            <type name="gpointer" c:type="gpointer"/>
          </parameter>
          <parameter name="min" transfer-ownership="none">
            <type name="GObject.Value" c:type="GValue*"/>
          </parameter>
          <parameter name="max" transfer-ownership="none">
            <type name="GObject.Value" c:type="GValue*"/>
          </parameter>
        </parameters>
      </function>
      <function name="hashtable_new"
                c:identifier="grl_range_value_hashtable_new">
        <source-position filename="src/grl-range-value.h" line="44"/>
        <return-value transfer-ownership="full">
          <doc xml:space="preserve"
               filename="src/grl-range-value.c"
               line="67">a #GHashTable</doc>
          <type name="GLib.HashTable" c:type="GHashTable*">
            <type name="gpointer"/>
            <type name="RangeValue"/>
          </type>
        </return-value>
      </function>
    </record>
    <enumeration name="Rank" c:type="GrlRank">
      <doc xml:space="preserve"
           filename="src/grl-registry.h"
           line="169">Source priority ranks. Defines the order in which the resolver
(or similar rank-picking mechanisms) will choose this source
over an alternative one with the same function.

These constants serve as a rough guidance for defining the rank
of a GrlSource. Any value is valid, including values bigger
than GRL_RANK_HIGHEST.</doc>
      <source-position filename="src/grl-registry.h" line="191"/>
      <member name="lowest" value="-64" c:identifier="GRL_RANK_LOWEST">
        <doc xml:space="preserve"
             filename="src/grl-registry.h"
             line="171">will be chosen last or not at all</doc>
      </member>
      <member name="low" value="-32" c:identifier="GRL_RANK_LOW">
        <doc xml:space="preserve"
             filename="src/grl-registry.h"
             line="172">unlikely to be chosen</doc>
      </member>
      <member name="default" value="0" c:identifier="GRL_RANK_DEFAULT">
        <doc xml:space="preserve"
             filename="src/grl-registry.h"
             line="173">likely to be chosen</doc>
      </member>
      <member name="high" value="32" c:identifier="GRL_RANK_HIGH">
        <doc xml:space="preserve"
             filename="src/grl-registry.h"
             line="174">will be chosen</doc>
      </member>
      <member name="highest" value="64" c:identifier="GRL_RANK_HIGHEST">
        <doc xml:space="preserve"
             filename="src/grl-registry.h"
             line="175">will be chosen first</doc>
      </member>
    </enumeration>
    <class name="Registry"
           c:symbol-prefix="registry"
           c:type="GrlRegistry"
           parent="GObject.Object"
           glib:type-name="GrlRegistry"
           glib:get-type="grl_registry_get_type"
           glib:type-struct="RegistryClass">
      <source-position filename="src/grl-registry.h" line="223"/>
      <function name="get_default"
                c:identifier="grl_registry_get_default"
                version="0.2.0">
        <doc xml:space="preserve"
             filename="src/grl-registry.c"
             line="1032">As the registry is designed to work as a singleton, this
method is in charge of creating the only instance or
returned it if it is already in memory.</doc>
        <source-position filename="src/grl-registry.h" line="229"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="src/grl-registry.c"
               line="1039">a new or an already created instance of the registry.

It is NOT MT-safe</doc>
          <type name="Registry" c:type="GrlRegistry*"/>
        </return-value>
      </function>
      <method name="activate_all_plugins"
              c:identifier="grl_registry_activate_all_plugins"
              version="0.3.0">
        <doc xml:space="preserve"
             filename="src/grl-registry.c"
             line="1288">Activate all the plugins loaded.</doc>
        <source-position filename="src/grl-registry.h" line="250"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="src/grl-registry.c"
               line="1294">%TRUE if some plugin has been activated</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <instance-parameter name="registry" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="src/grl-registry.c"
                 line="1290">the registry instace</doc>
            <type name="Registry" c:type="GrlRegistry*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="activate_plugin_by_id"
              c:identifier="grl_registry_activate_plugin_by_id"
              version="0.3.0"
              throws="1">
        <doc xml:space="preserve"
             filename="src/grl-registry.c"
             line="1496">Activates plugin identified by @plugin_id.</doc>
        <source-position filename="src/grl-registry.h" line="256"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="src/grl-registry.c"
               line="1504">%TRUE if the plugin is loaded correctly</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <instance-parameter name="registry" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="src/grl-registry.c"
                 line="1498">the registry instance</doc>
            <type name="Registry" c:type="GrlRegistry*"/>
          </instance-parameter>
          <parameter name="plugin_id" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="src/grl-registry.c"
                 line="1499">plugin identifier</doc>
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
        </parameters>
      </method>
      <method name="add_config"
              c:identifier="grl_registry_add_config"
              version="0.2.0"
              throws="1">
        <doc xml:space="preserve"
             filename="src/grl-registry.c"
             line="2037">Add a configuration for a plugin/source.</doc>
        <source-position filename="src/grl-registry.h" line="312"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="src/grl-registry.c"
               line="2045">%TRUE on success</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <instance-parameter name="registry" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="src/grl-registry.c"
                 line="2039">the registry instance</doc>
            <type name="Registry" c:type="GrlRegistry*"/>
          </instance-parameter>
          <parameter name="config" transfer-ownership="full">
            <doc xml:space="preserve"
                 filename="src/grl-registry.c"
                 line="2040">a configuration set</doc>
            <type name="Config" c:type="GrlConfig*"/>
          </parameter>
        </parameters>
      </method>
      <method name="add_config_from_file"
              c:identifier="grl_registry_add_config_from_file"
              version="0.2.0"
              throws="1">
        <doc xml:space="preserve"
             filename="src/grl-registry.c"
             line="2148">Load plugin configurations from a .ini-like config file.</doc>
        <source-position filename="src/grl-registry.h" line="316"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="src/grl-registry.c"
               line="2156">%TRUE on success</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <instance-parameter name="registry" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="src/grl-registry.c"
                 line="2150">the registry instance</doc>
            <type name="Registry" c:type="GrlRegistry*"/>
          </instance-parameter>
          <parameter name="config_file" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="src/grl-registry.c"
                 line="2151">a key-value file containing the configuration</doc>
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
        </parameters>
      </method>
      <method name="add_config_from_resource"
              c:identifier="grl_registry_add_config_from_resource"
              version="0.2.8"
              throws="1">
        <doc xml:space="preserve"
             filename="src/grl-registry.c"
             line="2192">Load plugin configurations from a .ini-like resource file.</doc>
        <source-position filename="src/grl-registry.h" line="320"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="src/grl-registry.c"
               line="2200">%TRUE on success</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <instance-parameter name="registry" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="src/grl-registry.c"
                 line="2194">the registry instance</doc>
            <type name="Registry" c:type="GrlRegistry*"/>
          </instance-parameter>
          <parameter name="resource_path" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="src/grl-registry.c"
                 line="2195">a key-value file containing the configuration</doc>
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
        </parameters>
      </method>
      <method name="add_directory"
              c:identifier="grl_registry_add_directory"
              version="0.2.0">
        <doc xml:space="preserve"
             filename="src/grl-registry.c"
             line="1152">Set this path as part of default paths to load plugins.</doc>
        <source-position filename="src/grl-registry.h" line="231"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="registry" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="src/grl-registry.c"
                 line="1154">the registry instance</doc>
            <type name="Registry" c:type="GrlRegistry*"/>
          </instance-parameter>
          <parameter name="path" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="src/grl-registry.c"
                 line="1155">a path with plugins</doc>
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
        </parameters>
      </method>
      <method name="get_metadata_keys"
              c:identifier="grl_registry_get_metadata_keys"
              version="0.2.0">
        <doc xml:space="preserve"
             filename="src/grl-registry.c"
             line="2019">Returns a list with all registered keys in system.</doc>
        <source-position filename="src/grl-registry.h" line="310"/>
        <return-value transfer-ownership="container">
          <doc xml:space="preserve"
               filename="src/grl-registry.c"
               line="2025">a #GList with all the available
#GrlKeyID&lt;!-- --&gt;s. The content of the list should not be modified or freed.
Use g_list_free() when done using the list.</doc>
          <type name="GLib.List" c:type="GList*">
            <type name="KeyID"/>
          </type>
        </return-value>
        <parameters>
          <instance-parameter name="registry" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="src/grl-registry.c"
                 line="2021">the registry instance</doc>
            <type name="Registry" c:type="GrlRegistry*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_plugins"
              c:identifier="grl_registry_get_plugins"
              version="0.2.0">
        <doc xml:space="preserve"
             filename="src/grl-registry.c"
             line="1679">This function will return all the available plugins in the @registry.

If @only_loaded is %TRUE, the plugin list will contain only plugins that are
loaded.</doc>
        <source-position filename="src/grl-registry.h" line="282"/>
        <return-value transfer-ownership="container">
          <doc xml:space="preserve"
               filename="src/grl-registry.c"
               line="1689">a #GList of
available #GrlPlugin&lt;!-- --&gt;s. The content of the list should not be modified
or freed. Use g_list_free() when done using the list.</doc>
          <type name="GLib.List" c:type="GList*">
            <type name="Plugin"/>
          </type>
        </return-value>
        <parameters>
          <instance-parameter name="registry" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="src/grl-registry.c"
                 line="1681">the registry instance</doc>
            <type name="Registry" c:type="GrlRegistry*"/>
          </instance-parameter>
          <parameter name="only_loaded" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="src/grl-registry.c"
                 line="1682">whether the returned list shall include only loaded plugins</doc>
            <type name="gboolean" c:type="gboolean"/>
          </parameter>
        </parameters>
      </method>
      <method name="get_sources"
              c:identifier="grl_registry_get_sources"
              version="0.2.0">
        <doc xml:space="preserve"
             filename="src/grl-registry.c"
             line="1573">This function will return all the available sources in the @registry.

If @ranked is %TRUE, the source list will be ordered by rank.</doc>
        <source-position filename="src/grl-registry.h" line="272"/>
        <return-value transfer-ownership="container">
          <doc xml:space="preserve"
               filename="src/grl-registry.c"
               line="1582">a #GList of
available #GrlSource&lt;!-- --&gt;s. The content of the list should not be
modified or freed. Use g_list_free() when done using the list.</doc>
          <type name="GLib.List" c:type="GList*">
            <type name="Source"/>
          </type>
        </return-value>
        <parameters>
          <instance-parameter name="registry" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="src/grl-registry.c"
                 line="1575">the registry instance</doc>
            <type name="Registry" c:type="GrlRegistry*"/>
          </instance-parameter>
          <parameter name="ranked" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="src/grl-registry.c"
                 line="1576">whether the returned list shall be returned ordered by rank</doc>
            <type name="gboolean" c:type="gboolean"/>
          </parameter>
        </parameters>
      </method>
      <method name="get_sources_by_operations"
              c:identifier="grl_registry_get_sources_by_operations"
              version="0.2.0">
        <doc xml:space="preserve"
             filename="src/grl-registry.c"
             line="1611">Give an array of all the available sources in the @registry capable of
perform the operations requested in @ops.

If @ranked is %TRUE, the source list will be ordered by rank.</doc>
        <source-position filename="src/grl-registry.h" line="275"/>
        <return-value transfer-ownership="container">
          <doc xml:space="preserve"
               filename="src/grl-registry.c"
               line="1622">a #GList of
available #GrlSource&lt;!-- --&gt;s. The content of the list should not be
modified or freed. Use g_list_free() when done using the list.</doc>
          <type name="GLib.List" c:type="GList*">
            <type name="Source"/>
          </type>
        </return-value>
        <parameters>
          <instance-parameter name="registry" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="src/grl-registry.c"
                 line="1613">the registry instance</doc>
            <type name="Registry" c:type="GrlRegistry*"/>
          </instance-parameter>
          <parameter name="ops" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="src/grl-registry.c"
                 line="1614">a bitwise mangle of the requested operations.</doc>
            <type name="SupportedOps" c:type="GrlSupportedOps"/>
          </parameter>
          <parameter name="ranked" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="src/grl-registry.c"
                 line="1615">whether the returned list shall be returned ordered by rank</doc>
            <type name="gboolean" c:type="gboolean"/>
          </parameter>
        </parameters>
      </method>
      <method name="load_all_plugins"
              c:identifier="grl_registry_load_all_plugins"
              version="0.2.0"
              throws="1">
        <doc xml:space="preserve"
             filename="src/grl-registry.c"
             line="1441">Load all the modules available in the default directory path.

The default directory path can be changed through the environment
variable %GRL_PLUGIN_PATH and it can contain several paths separated
by ":"</doc>
        <source-position filename="src/grl-registry.h" line="252"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="src/grl-registry.c"
               line="1453">%FALSE% is all the configured plugin paths are invalid,
%TRUE% otherwise.</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <instance-parameter name="registry" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="src/grl-registry.c"
                 line="1443">the registry instance</doc>
            <type name="Registry" c:type="GrlRegistry*"/>
          </instance-parameter>
          <parameter name="activate" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="src/grl-registry.c"
                 line="1444">%TRUE if plugins must be activated after loading</doc>
            <type name="gboolean" c:type="gboolean"/>
          </parameter>
        </parameters>
      </method>
      <method name="load_plugin"
              c:identifier="grl_registry_load_plugin"
              version="0.2.0"
              throws="1">
        <doc xml:space="preserve"
             filename="src/grl-registry.c"
             line="1317">Loads a module from shared object file stored in @path</doc>
        <source-position filename="src/grl-registry.h" line="234"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="src/grl-registry.c"
               line="1325">%TRUE if the module is loaded correctly</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <instance-parameter name="registry" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="src/grl-registry.c"
                 line="1319">the registry instance</doc>
            <type name="Registry" c:type="GrlRegistry*"/>
          </instance-parameter>
          <parameter name="library_filename" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="src/grl-registry.c"
                 line="1320">the path to the so file</doc>
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
        </parameters>
      </method>
      <method name="load_plugin_directory"
              c:identifier="grl_registry_load_plugin_directory"
              version="0.2.0"
              throws="1">
        <doc xml:space="preserve"
             filename="src/grl-registry.c"
             line="1384">Loads a set of modules from directory in @path which contains
a group shared object files.</doc>
        <source-position filename="src/grl-registry.h" line="242"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="src/grl-registry.c"
               line="1393">%TRUE if the directory is valid.</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <instance-parameter name="registry" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="src/grl-registry.c"
                 line="1386">the registry instance</doc>
            <type name="Registry" c:type="GrlRegistry*"/>
          </instance-parameter>
          <parameter name="path" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="src/grl-registry.c"
                 line="1387">the path to the directory</doc>
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
        </parameters>
      </method>
      <method name="load_plugin_from_desc"
              c:identifier="grl_registry_load_plugin_from_desc"
              version="0.3.0"
              introspectable="0"
              throws="1">
        <doc xml:space="preserve"
             filename="src/grl-registry.c"
             line="1343">Loads the grilo plugin defined by @plugin_desc. This is
used to load plugins that aren't shared libraries, and are
built into applications.

&lt;example&gt;
  Minimal example for loading a builtin plugin, in C.
  &lt;programlisting&gt;
    static GrlPluginDescriptor descriptor = {
      .plugin_id = "grl-example",
      .plugin_init = grl_example_plugin_init,
    };

    grl_registry_load_plugin_from_desc (registry, &amp;descriptor, &amp;error);
  &lt;/programlisting&gt;
&lt;/example&gt;</doc>
        <source-position filename="src/grl-registry.h" line="238"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="src/grl-registry.c"
               line="1365">%TRUE if the plugin is initialised correctly</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <instance-parameter name="registry" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="src/grl-registry.c"
                 line="1345">the registry instance</doc>
            <type name="Registry" c:type="GrlRegistry*"/>
          </instance-parameter>
          <parameter name="plugin_desc" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="src/grl-registry.c"
                 line="1346">the #GrlPluginDescriptor for the plugin</doc>
            <type name="PluginDescriptor" c:type="GrlPluginDescriptor*"/>
          </parameter>
        </parameters>
      </method>
      <method name="lookup_metadata_key"
              c:identifier="grl_registry_lookup_metadata_key"
              version="0.2.0">
        <doc xml:space="preserve"
             filename="src/grl-registry.c"
             line="1851">Look up for the metadata key with name @key_name.</doc>
        <source-position filename="src/grl-registry.h" line="291"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="src/grl-registry.c"
               line="1858">The metadata key, or GRL_METADATA_KEY_INVALID if not found</doc>
          <type name="KeyID" c:type="GrlKeyID"/>
        </return-value>
        <parameters>
          <instance-parameter name="registry" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="src/grl-registry.c"
                 line="1853">the registry instance</doc>
            <type name="Registry" c:type="GrlRegistry*"/>
          </instance-parameter>
          <parameter name="key_name" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="src/grl-registry.c"
                 line="1854">the key name</doc>
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
        </parameters>
      </method>
      <method name="lookup_metadata_key_desc"
              c:identifier="grl_registry_lookup_metadata_key_desc"
              version="0.2.0">
        <doc xml:space="preserve"
             filename="src/grl-registry.c"
             line="1892">Returns @key description.</doc>
        <source-position filename="src/grl-registry.h" line="300"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="src/grl-registry.c"
               line="1899">metadata key description, or @NULL if not found</doc>
          <type name="utf8" c:type="const gchar*"/>
        </return-value>
        <parameters>
          <instance-parameter name="registry" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="src/grl-registry.c"
                 line="1894">the registry instance</doc>
            <type name="Registry" c:type="GrlRegistry*"/>
          </instance-parameter>
          <parameter name="key" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="src/grl-registry.c"
                 line="1895">a metadata key</doc>
            <type name="KeyID" c:type="GrlKeyID"/>
          </parameter>
        </parameters>
      </method>
      <method name="lookup_metadata_key_name"
              c:identifier="grl_registry_lookup_metadata_key_name"
              version="0.2.0">
        <doc xml:space="preserve"
             filename="src/grl-registry.c"
             line="1872">Returns @key name.</doc>
        <source-position filename="src/grl-registry.h" line="297"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="src/grl-registry.c"
               line="1879">metadata key name, or @NULL if not found</doc>
          <type name="utf8" c:type="const gchar*"/>
        </return-value>
        <parameters>
          <instance-parameter name="registry" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="src/grl-registry.c"
                 line="1874">the registry instance</doc>
            <type name="Registry" c:type="GrlRegistry*"/>
          </instance-parameter>
          <parameter name="key" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="src/grl-registry.c"
                 line="1875">a metadata key</doc>
            <type name="KeyID" c:type="GrlKeyID"/>
          </parameter>
        </parameters>
      </method>
      <method name="lookup_metadata_key_relation"
              c:identifier="grl_registry_lookup_metadata_key_relation"
              version="0.2.0">
        <doc xml:space="preserve"
             filename="src/grl-registry.c"
             line="1996">Look up the list of keys that have a relation with @key.

@key is included in that list.</doc>
        <source-position filename="src/grl-registry.h" line="294"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="src/grl-registry.c"
               line="2005">a #GList of
related keys, or @NULL if key is invalid.</doc>
          <type name="GLib.List" c:type="const GList*">
            <type name="KeyID"/>
          </type>
        </return-value>
        <parameters>
          <instance-parameter name="registry" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="src/grl-registry.c"
                 line="1998">the registry instance</doc>
            <type name="Registry" c:type="GrlRegistry*"/>
          </instance-parameter>
          <parameter name="key" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="src/grl-registry.c"
                 line="1999">a metadata key</doc>
            <type name="KeyID" c:type="GrlKeyID"/>
          </parameter>
        </parameters>
      </method>
      <method name="lookup_metadata_key_type"
              c:identifier="grl_registry_lookup_metadata_key_type"
              version="0.2.0">
        <doc xml:space="preserve"
             filename="src/grl-registry.c"
             line="1925">Returns @key expected value type.</doc>
        <source-position filename="src/grl-registry.h" line="303"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="src/grl-registry.c"
               line="1932">metadata key type, or @G_TYPE_INVALID if not found</doc>
          <type name="GType" c:type="GType"/>
        </return-value>
        <parameters>
          <instance-parameter name="registry" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="src/grl-registry.c"
                 line="1927">the registry instance</doc>
            <type name="Registry" c:type="GrlRegistry*"/>
          </instance-parameter>
          <parameter name="key" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="src/grl-registry.c"
                 line="1928">a metadata key</doc>
            <type name="KeyID" c:type="GrlKeyID"/>
          </parameter>
        </parameters>
      </method>
      <method name="lookup_plugin"
              c:identifier="grl_registry_lookup_plugin"
              version="0.2.0">
        <doc xml:space="preserve"
             filename="src/grl-registry.c"
             line="1657">This function will search and retrieve a plugin given its identifier.</doc>
        <source-position filename="src/grl-registry.h" line="279"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="src/grl-registry.c"
               line="1664">The plugin found</doc>
          <type name="Plugin" c:type="GrlPlugin*"/>
        </return-value>
        <parameters>
          <instance-parameter name="registry" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="src/grl-registry.c"
                 line="1659">the registry instance</doc>
            <type name="Registry" c:type="GrlRegistry*"/>
          </instance-parameter>
          <parameter name="plugin_id" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="src/grl-registry.c"
                 line="1660">the id of a plugin</doc>
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
        </parameters>
      </method>
      <method name="lookup_source"
              c:identifier="grl_registry_lookup_source"
              version="0.2.0">
        <doc xml:space="preserve"
             filename="src/grl-registry.c"
             line="1546">This function will search and retrieve a source given its identifier.</doc>
        <source-position filename="src/grl-registry.h" line="269"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="src/grl-registry.c"
               line="1553">The source found.</doc>
          <type name="Source" c:type="GrlSource*"/>
        </return-value>
        <parameters>
          <instance-parameter name="registry" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="src/grl-registry.c"
                 line="1548">the registry instance</doc>
            <type name="Registry" c:type="GrlRegistry*"/>
          </instance-parameter>
          <parameter name="source_id" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="src/grl-registry.c"
                 line="1549">the id of a source</doc>
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
        </parameters>
      </method>
      <method name="metadata_key_validate"
              c:identifier="grl_registry_metadata_key_validate"
              version="0.2.0">
        <doc xml:space="preserve"
             filename="src/grl-registry.c"
             line="1958">Validates @value content complies with the key specification. That is, it has
the expected type, and value are within the range specified in key (for
integer values).</doc>
        <source-position filename="src/grl-registry.h" line="306"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="src/grl-registry.c"
               line="1968">%TRUE if complies</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <instance-parameter name="registry" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="src/grl-registry.c"
                 line="1960">the registry instance</doc>
            <type name="Registry" c:type="GrlRegistry*"/>
          </instance-parameter>
          <parameter name="key" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="src/grl-registry.c"
                 line="1961">a metadata key</doc>
            <type name="KeyID" c:type="GrlKeyID"/>
          </parameter>
          <parameter name="value" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="src/grl-registry.c"
                 line="1962">value to be validate</doc>
            <type name="GObject.Value" c:type="GValue*"/>
          </parameter>
        </parameters>
      </method>
      <method name="register_metadata_key"
              c:identifier="grl_registry_register_metadata_key"
              version="0.3.0"
              throws="1">
        <doc xml:space="preserve"
             filename="src/grl-registry.c"
             line="1778">Registers a new metadata key, creating a relation between the new key and
@bind_key.

Two keys are related when the values of both keys are somehow related.

One example of a relation would be the one between the URI of a media
resource and its mime-type: they are both tied together and one does not make
sense without the other.

Relations between keys allow the framework to provide all the data that is
somehow related when any of the related keys are requested.</doc>
        <source-position filename="src/grl-registry.h" line="286"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="src/grl-registry.c"
               line="1797">The #GrlKeyID registered.</doc>
          <type name="KeyID" c:type="GrlKeyID"/>
        </return-value>
        <parameters>
          <instance-parameter name="registry" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="src/grl-registry.c"
                 line="1780">The plugin registry</doc>
            <type name="Registry" c:type="GrlRegistry*"/>
          </instance-parameter>
          <parameter name="param_spec" transfer-ownership="full">
            <doc xml:space="preserve"
                 filename="src/grl-registry.c"
                 line="1781">The definition of the key to register</doc>
            <type name="GObject.ParamSpec" c:type="GParamSpec*"/>
          </parameter>
          <parameter name="bind_key" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="src/grl-registry.c"
                 line="1782">The key the new key is bind to, or #GRL_METADATA_KEY_INVALID if it is not bound.</doc>
            <type name="KeyID" c:type="GrlKeyID"/>
          </parameter>
        </parameters>
      </method>
      <method name="register_source"
              c:identifier="grl_registry_register_source"
              version="0.2.0"
              throws="1">
        <doc xml:space="preserve"
             filename="src/grl-registry.c"
             line="1058">Register a @source in the @registry with the given @plugin information</doc>
        <source-position filename="src/grl-registry.h" line="260"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="src/grl-registry.c"
               line="1067">%TRUE if success, %FALSE% otherwise.</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <instance-parameter name="registry" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="src/grl-registry.c"
                 line="1060">the registry instance</doc>
            <type name="Registry" c:type="GrlRegistry*"/>
          </instance-parameter>
          <parameter name="plugin" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="src/grl-registry.c"
                 line="1061">the plugin which owns the source</doc>
            <type name="Plugin" c:type="GrlPlugin*"/>
          </parameter>
          <parameter name="source" transfer-ownership="full">
            <doc xml:space="preserve"
                 filename="src/grl-registry.c"
                 line="1062">the source to register</doc>
            <type name="Source" c:type="GrlSource*"/>
          </parameter>
        </parameters>
      </method>
      <method name="unload_plugin"
              c:identifier="grl_registry_unload_plugin"
              version="0.2.0"
              throws="1">
        <doc xml:space="preserve"
             filename="src/grl-registry.c"
             line="1721">Unload from memory a module identified by @plugin_id. This means call the
module's deinit function.</doc>
        <source-position filename="src/grl-registry.h" line="246"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="src/grl-registry.c"
               line="1730">%TRUE% on success.</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <instance-parameter name="registry" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="src/grl-registry.c"
                 line="1723">the registry instance</doc>
            <type name="Registry" c:type="GrlRegistry*"/>
          </instance-parameter>
          <parameter name="plugin_id" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="src/grl-registry.c"
                 line="1724">the identifier of the plugin</doc>
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
        </parameters>
      </method>
      <method name="unregister_source"
              c:identifier="grl_registry_unregister_source"
              version="0.2.0"
              throws="1">
        <doc xml:space="preserve"
             filename="src/grl-registry.c"
             line="1109">Removes the @source from the @registry hash table</doc>
        <source-position filename="src/grl-registry.h" line="265"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="src/grl-registry.c"
               line="1117">%TRUE if success, %FALSE% otherwise.</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <instance-parameter name="registry" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="src/grl-registry.c"
                 line="1111">the registry instance</doc>
            <type name="Registry" c:type="GrlRegistry*"/>
          </instance-parameter>
          <parameter name="source" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="src/grl-registry.c"
                 line="1112">the source to unregister</doc>
            <type name="Source" c:type="GrlSource*"/>
          </parameter>
        </parameters>
      </method>
      <field name="parent">
        <type name="GObject.Object" c:type="GObject"/>
      </field>
      <field name="priv" readable="0" private="1">
        <type name="RegistryPrivate" c:type="GrlRegistryPrivate*"/>
      </field>
      <field name="_grl_reserved" readable="0" private="1">
        <array zero-terminated="0" fixed-size="16">
          <type name="gpointer" c:type="gpointer"/>
        </array>
      </field>
      <glib:signal name="metadata-key-added"
                   when="first"
                   action="1"
                   version="0.2.10">
        <doc xml:space="preserve"
             filename="src/grl-registry.c"
             line="172">Signals that a new metadata key has been registered.</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <parameter name="key" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="src/grl-registry.c"
                 line="175">the name of the new key added</doc>
            <type name="utf8" c:type="gchar*"/>
          </parameter>
        </parameters>
      </glib:signal>
      <glib:signal name="source-added" when="first" action="1" version="0.2.0">
        <doc xml:space="preserve"
             filename="src/grl-registry.c"
             line="134">Signals that a source has been added to the registry.</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <parameter name="source" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="src/grl-registry.c"
                 line="137">the source that has been added</doc>
            <type name="Source"/>
          </parameter>
        </parameters>
      </glib:signal>
      <glib:signal name="source-removed"
                   when="first"
                   action="1"
                   version="0.2.0">
        <doc xml:space="preserve"
             filename="src/grl-registry.c"
             line="153">Signals that a source has been removed from the registry.</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <parameter name="source" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="src/grl-registry.c"
                 line="156">the source that has been removed</doc>
            <type name="Source"/>
          </parameter>
        </parameters>
      </glib:signal>
    </class>
    <record name="RegistryClass"
            c:type="GrlRegistryClass"
            glib:is-gtype-struct-for="Registry">
      <doc xml:space="preserve"
           filename="src/grl-registry.h"
           line="211">Grilo Registry class. Dynamic loader of plugins.</doc>
      <source-position filename="src/grl-registry.h" line="223"/>
      <field name="parent_class">
        <doc xml:space="preserve"
             filename="src/grl-registry.h"
             line="213">the parent class structure</doc>
        <type name="GObject.ObjectClass" c:type="GObjectClass"/>
      </field>
      <field name="_grl_reserved" readable="0" private="1">
        <array zero-terminated="0" fixed-size="16">
          <type name="gpointer" c:type="gpointer"/>
        </array>
      </field>
    </record>
    <record name="RegistryPrivate"
            c:type="GrlRegistryPrivate"
            disguised="1"
            opaque="1">
      <source-position filename="src/grl-registry.h" line="195"/>
    </record>
    <class name="RelatedKeys"
           c:symbol-prefix="related_keys"
           c:type="GrlRelatedKeys"
           parent="GObject.Object"
           glib:type-name="GrlRelatedKeys"
           glib:get-type="grl_related_keys_get_type"
           glib:type-struct="RelatedKeysClass">
      <source-position filename="src/data/grl-related-keys.h" line="92"/>
      <constructor name="new"
                   c:identifier="grl_related_keys_new"
                   version="0.1.10">
        <doc xml:space="preserve"
             filename="src/data/grl-related-keys.c"
             line="95">Creates a new #GrlRelatedKeys instance that can be used to store related
keys and their values.</doc>
        <source-position filename="src/data/grl-related-keys.h" line="96"/>
        <return-value transfer-ownership="full">
          <doc xml:space="preserve"
               filename="src/data/grl-related-keys.c"
               line="101">a new object.</doc>
          <type name="RelatedKeys" c:type="GrlRelatedKeys*"/>
        </return-value>
      </constructor>
      <constructor name="new_valist"
                   c:identifier="grl_related_keys_new_valist"
                   version="0.1.10"
                   introspectable="0">
        <doc xml:space="preserve"
             filename="src/data/grl-related-keys.c"
             line="111">Creates a new #GrlRelatedKeys containing pairs of (key, value). Finish the
list with %NULL.

In case of a binary-type key, the expected element is (key, value, size).

value type will be extracted from key information.</doc>
        <source-position filename="src/data/grl-related-keys.h" line="98"/>
        <return-value transfer-ownership="full">
          <doc xml:space="preserve"
               filename="src/data/grl-related-keys.c"
               line="123">a new #GrlRelatedKeys</doc>
          <type name="RelatedKeys" c:type="GrlRelatedKeys*"/>
        </return-value>
        <parameters>
          <parameter name="key" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="src/data/grl-related-keys.c"
                 line="113">first key</doc>
            <type name="KeyID" c:type="GrlKeyID"/>
          </parameter>
          <parameter name="args" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="src/data/grl-related-keys.c"
                 line="114">#va_list of value, followed by (key,value) pairs to insert</doc>
            <type name="va_list" c:type="va_list"/>
          </parameter>
        </parameters>
      </constructor>
      <constructor name="new_with_keys"
                   c:identifier="grl_related_keys_new_with_keys"
                   version="0.1.10"
                   introspectable="0">
        <doc xml:space="preserve"
             filename="src/data/grl-related-keys.c"
             line="165">Creates a initial #GrlRelatedKeys containing the list of (key, value)
pairs. Finish the list with %NULL.

For more information see #grl_related_keys_new_valist.</doc>
        <source-position filename="src/data/grl-related-keys.h" line="100"/>
        <return-value transfer-ownership="full">
          <doc xml:space="preserve"
               filename="src/data/grl-related-keys.c"
               line="175">a new #GrlRelatedKeys</doc>
          <type name="RelatedKeys" c:type="GrlRelatedKeys*"/>
        </return-value>
        <parameters>
          <parameter name="key" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="src/data/grl-related-keys.c"
                 line="167">first key</doc>
            <type name="KeyID" c:type="GrlKeyID"/>
          </parameter>
          <parameter name="..." transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="src/data/grl-related-keys.c"
                 line="168">value, following by list of (key, value)</doc>
            <varargs/>
          </parameter>
        </parameters>
      </constructor>
      <method name="dup" c:identifier="grl_related_keys_dup" version="0.1.10">
        <doc xml:space="preserve"
             filename="src/data/grl-related-keys.c"
             line="790">Makes a deep copy of @relkeys and its contents.</doc>
        <source-position filename="src/data/grl-related-keys.h" line="172"/>
        <return-value transfer-ownership="full">
          <doc xml:space="preserve"
               filename="src/data/grl-related-keys.c"
               line="796">a new #GrlRelatedKeys.
Free it with #g_object_unref.</doc>
          <type name="RelatedKeys" c:type="GrlRelatedKeys*"/>
        </return-value>
        <parameters>
          <instance-parameter name="relkeys" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="src/data/grl-related-keys.c"
                 line="792">set of related keys to duplicate</doc>
            <type name="RelatedKeys" c:type="GrlRelatedKeys*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get" c:identifier="grl_related_keys_get" version="0.1.10">
        <doc xml:space="preserve"
             filename="src/data/grl-related-keys.c"
             line="194">Get the value associated with @key from @relkeys. If it does not contain any
value, %NULL will be returned.</doc>
        <source-position filename="src/data/grl-related-keys.h" line="135"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="src/data/grl-related-keys.c"
               line="202">a #GValue. This value should not be modified nor
freed by user.</doc>
          <type name="GObject.Value" c:type="const GValue*"/>
        </return-value>
        <parameters>
          <instance-parameter name="relkeys" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="src/data/grl-related-keys.c"
                 line="196">set of related keys to retrieve value</doc>
            <type name="RelatedKeys" c:type="GrlRelatedKeys*"/>
          </instance-parameter>
          <parameter name="key" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="src/data/grl-related-keys.c"
                 line="197">key to look up.</doc>
            <type name="KeyID" c:type="GrlKeyID"/>
          </parameter>
        </parameters>
      </method>
      <method name="get_binary"
              c:identifier="grl_related_keys_get_binary"
              version="0.1.10">
        <doc xml:space="preserve"
             filename="src/data/grl-related-keys.c"
             line="530">Returns the value associated with @key from @relkeys. If @key has no value,
or value is not a binary, or @key is not in @relkeys, then 0 is returned.</doc>
        <source-position filename="src/data/grl-related-keys.h" line="150"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="src/data/grl-related-keys.c"
               line="539">buffer location associated with @key, or %NULL in other case. If
successful @size will be set to the buffer size.</doc>
          <type name="guint8" c:type="const guint8*"/>
        </return-value>
        <parameters>
          <instance-parameter name="relkeys" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="src/data/grl-related-keys.c"
                 line="532">set of related keys to inspect</doc>
            <type name="RelatedKeys" c:type="GrlRelatedKeys*"/>
          </instance-parameter>
          <parameter name="key" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="src/data/grl-related-keys.c"
                 line="533">key to use</doc>
            <type name="KeyID" c:type="GrlKeyID"/>
          </parameter>
          <parameter name="size"
                     direction="out"
                     caller-allocates="0"
                     transfer-ownership="full">
            <doc xml:space="preserve"
                 filename="src/data/grl-related-keys.c"
                 line="534">location to store the buffer size</doc>
            <type name="gsize" c:type="gsize*"/>
          </parameter>
        </parameters>
      </method>
      <method name="get_boolean"
              c:identifier="grl_related_keys_get_boolean"
              version="0.2.3">
        <doc xml:space="preserve"
             filename="src/data/grl-related-keys.c"
             line="463">Returns the value associated with @key from @relkeys. If @key has no value,
or value is not a gboolean, or @key is not in @relkeys, then %FALSE is
returned.</doc>
        <source-position filename="src/data/grl-related-keys.h" line="147"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="src/data/grl-related-keys.c"
               line="472">float value associated with @key, or %FALSE in other case.</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <instance-parameter name="relkeys" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="src/data/grl-related-keys.c"
                 line="465">set of related keys to inspect</doc>
            <type name="RelatedKeys" c:type="GrlRelatedKeys*"/>
          </instance-parameter>
          <parameter name="key" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="src/data/grl-related-keys.c"
                 line="466">key to use</doc>
            <type name="KeyID" c:type="GrlKeyID"/>
          </parameter>
        </parameters>
      </method>
      <method name="get_boxed"
              c:identifier="grl_related_keys_get_boxed"
              version="0.2.0">
        <doc xml:space="preserve"
             filename="src/data/grl-related-keys.c"
             line="595">Returns the value associated with @key from @relkeys. If @key has no value,
the value is not of a boxed type, or @key is not in @relkeys, then %NULL is
returned.</doc>
        <source-position filename="src/data/grl-related-keys.h" line="154"/>
        <return-value transfer-ownership="none" nullable="1">
          <doc xml:space="preserve"
               filename="src/data/grl-related-keys.c"
               line="604">the #GBoxed value associated with @key if
possible, or %NULL in other case. The caller should not change nor free the
value.</doc>
          <type name="gpointer" c:type="gconstpointer"/>
        </return-value>
        <parameters>
          <instance-parameter name="relkeys" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="src/data/grl-related-keys.c"
                 line="597">set of related keys to inspect</doc>
            <type name="RelatedKeys" c:type="GrlRelatedKeys*"/>
          </instance-parameter>
          <parameter name="key" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="src/data/grl-related-keys.c"
                 line="598">key to use</doc>
            <type name="KeyID" c:type="GrlKeyID"/>
          </parameter>
        </parameters>
      </method>
      <method name="get_float"
              c:identifier="grl_related_keys_get_float"
              version="0.1.10">
        <doc xml:space="preserve"
             filename="src/data/grl-related-keys.c"
             line="411">Returns the value associated with @key from @relkeys. If @key has no value,
or value is not a gfloat, or @key is not in @relkeys, then 0 is returned.</doc>
        <source-position filename="src/data/grl-related-keys.h" line="144"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="src/data/grl-related-keys.c"
               line="419">float value associated with @key, or 0 in other case.</doc>
          <type name="gfloat" c:type="gfloat"/>
        </return-value>
        <parameters>
          <instance-parameter name="relkeys" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="src/data/grl-related-keys.c"
                 line="413">set of related keys to inspect</doc>
            <type name="RelatedKeys" c:type="GrlRelatedKeys*"/>
          </instance-parameter>
          <parameter name="key" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="src/data/grl-related-keys.c"
                 line="414">key to use</doc>
            <type name="KeyID" c:type="GrlKeyID"/>
          </parameter>
        </parameters>
      </method>
      <method name="get_int"
              c:identifier="grl_related_keys_get_int"
              version="0.1.10">
        <doc xml:space="preserve"
             filename="src/data/grl-related-keys.c"
             line="359">Returns the value associated with @key from @relkeys. If @key has no value,
or value is not a gint, or @key is not in @relkeys, then 0 is returned.</doc>
        <source-position filename="src/data/grl-related-keys.h" line="141"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="src/data/grl-related-keys.c"
               line="367">int value associated with @key, or 0 in other case.</doc>
          <type name="gint" c:type="gint"/>
        </return-value>
        <parameters>
          <instance-parameter name="relkeys" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="src/data/grl-related-keys.c"
                 line="361">set of related keys to inspect</doc>
            <type name="RelatedKeys" c:type="GrlRelatedKeys*"/>
          </instance-parameter>
          <parameter name="key" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="src/data/grl-related-keys.c"
                 line="362">key to use</doc>
            <type name="KeyID" c:type="GrlKeyID"/>
          </parameter>
        </parameters>
      </method>
      <method name="get_int64"
              c:identifier="grl_related_keys_get_int64"
              version="0.2.12">
        <doc xml:space="preserve"
             filename="src/data/grl-related-keys.c"
             line="650">Returns the value associated with @key from @relkeys. If @key has no value,
or value is not a gint64, or @key is not in @relkeys, then 0 is returned.</doc>
        <source-position filename="src/data/grl-related-keys.h" line="157"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="src/data/grl-related-keys.c"
               line="658">int64 value associated with @key, or 0 in other case.</doc>
          <type name="gint64" c:type="gint64"/>
        </return-value>
        <parameters>
          <instance-parameter name="relkeys" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="src/data/grl-related-keys.c"
                 line="652">set of related keys to inspect</doc>
            <type name="RelatedKeys" c:type="GrlRelatedKeys*"/>
          </instance-parameter>
          <parameter name="key" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="src/data/grl-related-keys.c"
                 line="653">key to use</doc>
            <type name="KeyID" c:type="GrlKeyID"/>
          </parameter>
        </parameters>
      </method>
      <method name="get_keys"
              c:identifier="grl_related_keys_get_keys"
              version="0.1.13">
        <doc xml:space="preserve"
             filename="src/data/grl-related-keys.c"
             line="770">Returns a list with keys contained in @relkeys.</doc>
        <source-position filename="src/data/grl-related-keys.h" line="166"/>
        <return-value transfer-ownership="container">
          <doc xml:space="preserve"
               filename="src/data/grl-related-keys.c"
               line="776">a list with
the keys. The content of the list should not be modified or freed. Use
g_list_free() when done using the list.</doc>
          <type name="GLib.List" c:type="GList*">
            <type name="KeyID"/>
          </type>
        </return-value>
        <parameters>
          <instance-parameter name="relkeys" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="src/data/grl-related-keys.c"
                 line="772">set of related keys to inspect</doc>
            <type name="RelatedKeys" c:type="GrlRelatedKeys*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_string"
              c:identifier="grl_related_keys_get_string"
              version="0.1.10">
        <doc xml:space="preserve"
             filename="src/data/grl-related-keys.c"
             line="306">Returns the value associated with @key from @relkeys. If @key has no value,
or value is not string, or @key is not in @relkeys, then %NULL is returned.</doc>
        <source-position filename="src/data/grl-related-keys.h" line="138"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="src/data/grl-related-keys.c"
               line="314">string associated with @key, or %NULL in other case. Caller should
not change nor free the value.</doc>
          <type name="utf8" c:type="const gchar*"/>
        </return-value>
        <parameters>
          <instance-parameter name="relkeys" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="src/data/grl-related-keys.c"
                 line="308">set of related keys to inspect</doc>
            <type name="RelatedKeys" c:type="GrlRelatedKeys*"/>
          </instance-parameter>
          <parameter name="key" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="src/data/grl-related-keys.c"
                 line="309">key to use</doc>
            <type name="KeyID" c:type="GrlKeyID"/>
          </parameter>
        </parameters>
      </method>
      <method name="has_key"
              c:identifier="grl_related_keys_has_key"
              version="0.1.10">
        <doc xml:space="preserve"
             filename="src/data/grl-related-keys.c"
             line="748">Checks if @key is in @relkeys.</doc>
        <source-position filename="src/data/grl-related-keys.h" line="163"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="src/data/grl-related-keys.c"
               line="755">%TRUE if @key is in @relkeys, %FALSE in other case.</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <instance-parameter name="relkeys" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="src/data/grl-related-keys.c"
                 line="750">set of related keys to inspect</doc>
            <type name="RelatedKeys" c:type="GrlRelatedKeys*"/>
          </instance-parameter>
          <parameter name="key" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="src/data/grl-related-keys.c"
                 line="751">key to search</doc>
            <type name="KeyID" c:type="GrlKeyID"/>
          </parameter>
        </parameters>
      </method>
      <method name="remove"
              c:identifier="grl_related_keys_remove"
              version="0.2.3">
        <doc xml:space="preserve"
             filename="src/data/grl-related-keys.c"
             line="729">Removes @key from @relkeys set.</doc>
        <source-position filename="src/data/grl-related-keys.h" line="160"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="relkeys" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="src/data/grl-related-keys.c"
                 line="731">set of related keys</doc>
            <type name="RelatedKeys" c:type="GrlRelatedKeys*"/>
          </instance-parameter>
          <parameter name="key" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="src/data/grl-related-keys.c"
                 line="732">key to remove</doc>
            <type name="KeyID" c:type="GrlKeyID"/>
          </parameter>
        </parameters>
      </method>
      <method name="set" c:identifier="grl_related_keys_set" version="0.1.10">
        <doc xml:space="preserve"
             filename="src/data/grl-related-keys.c"
             line="217">Sets the value associated with @key into @relkeys. Old value is freed and
the new one is set.

Also, checks that @value is compliant with @key specification, modifying it
accordingly. For instance, if @key requires a number between 0 and 10, but
value is outside this range, it will be adapted accordingly.</doc>
        <source-position filename="src/data/grl-related-keys.h" line="102"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="relkeys" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="src/data/grl-related-keys.c"
                 line="219">set of related keys to modify</doc>
            <type name="RelatedKeys" c:type="GrlRelatedKeys*"/>
          </instance-parameter>
          <parameter name="key" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="src/data/grl-related-keys.c"
                 line="220">key to change or add</doc>
            <type name="KeyID" c:type="GrlKeyID"/>
          </parameter>
          <parameter name="value" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="src/data/grl-related-keys.c"
                 line="221">the new value</doc>
            <type name="GObject.Value" c:type="const GValue*"/>
          </parameter>
        </parameters>
      </method>
      <method name="set_binary"
              c:identifier="grl_related_keys_set_binary"
              version="0.1.10">
        <doc xml:space="preserve"
             filename="src/data/grl-related-keys.c"
             line="493">Sets the value associated with @key into @relkeys. @key must have been
registered as a binary-type key. Old value is replaced by the new one.</doc>
        <source-position filename="src/data/grl-related-keys.h" line="122"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="relkeys" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="src/data/grl-related-keys.c"
                 line="495">set of related keys to change</doc>
            <type name="RelatedKeys" c:type="GrlRelatedKeys*"/>
          </instance-parameter>
          <parameter name="key" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="src/data/grl-related-keys.c"
                 line="496">key to change or add</doc>
            <type name="KeyID" c:type="GrlKeyID"/>
          </parameter>
          <parameter name="buf" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="src/data/grl-related-keys.c"
                 line="497">buffer holding the relkeys</doc>
            <type name="guint8" c:type="const guint8*"/>
          </parameter>
          <parameter name="size" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="src/data/grl-related-keys.c"
                 line="498">size of the buffer</doc>
            <type name="gsize" c:type="gsize"/>
          </parameter>
        </parameters>
      </method>
      <method name="set_boolean"
              c:identifier="grl_related_keys_set_boolean"
              version="0.2.3">
        <doc xml:space="preserve"
             filename="src/data/grl-related-keys.c"
             line="440">Sets the value associated with @key into @relkeys. @key must have been
registered as a boolean-type key. Old value is replaced by the new one.</doc>
        <source-position filename="src/data/grl-related-keys.h" line="118"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="relkeys" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="src/data/grl-related-keys.c"
                 line="442">set of related keys to change</doc>
            <type name="RelatedKeys" c:type="GrlRelatedKeys*"/>
          </instance-parameter>
          <parameter name="key" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="src/data/grl-related-keys.c"
                 line="443">key to change or add</doc>
            <type name="KeyID" c:type="GrlKeyID"/>
          </parameter>
          <parameter name="booleanvalue" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="src/data/grl-related-keys.c"
                 line="444">the new value</doc>
            <type name="gboolean" c:type="gboolean"/>
          </parameter>
        </parameters>
      </method>
      <method name="set_boxed"
              c:identifier="grl_related_keys_set_boxed"
              version="0.2.0">
        <doc xml:space="preserve"
             filename="src/data/grl-related-keys.c"
             line="568">Sets the value associated with @key into @relkeys. @key must have been
registered as a boxed-type key. Old value is freed and the new one is set.</doc>
        <source-position filename="src/data/grl-related-keys.h" line="127"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="relkeys" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="src/data/grl-related-keys.c"
                 line="570">set of related keys to modify</doc>
            <type name="RelatedKeys" c:type="GrlRelatedKeys*"/>
          </instance-parameter>
          <parameter name="key" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="src/data/grl-related-keys.c"
                 line="571">key to change or add</doc>
            <type name="KeyID" c:type="GrlKeyID"/>
          </parameter>
          <parameter name="boxed"
                     transfer-ownership="none"
                     nullable="1"
                     allow-none="1">
            <doc xml:space="preserve"
                 filename="src/data/grl-related-keys.c"
                 line="572">the new value</doc>
            <type name="gpointer" c:type="gconstpointer"/>
          </parameter>
        </parameters>
      </method>
      <method name="set_float"
              c:identifier="grl_related_keys_set_float"
              version="0.1.10">
        <doc xml:space="preserve"
             filename="src/data/grl-related-keys.c"
             line="388">Sets the value associated with @key into @relkeys. @key must have been
registered as a float-type key. Old value is replaced by the new one.</doc>
        <source-position filename="src/data/grl-related-keys.h" line="114"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="relkeys" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="src/data/grl-related-keys.c"
                 line="390">set of related keys to change</doc>
            <type name="RelatedKeys" c:type="GrlRelatedKeys*"/>
          </instance-parameter>
          <parameter name="key" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="src/data/grl-related-keys.c"
                 line="391">key to change or add</doc>
            <type name="KeyID" c:type="GrlKeyID"/>
          </parameter>
          <parameter name="floatvalue" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="src/data/grl-related-keys.c"
                 line="392">the new value</doc>
            <type name="gfloat" c:type="gfloat"/>
          </parameter>
        </parameters>
      </method>
      <method name="set_for_id"
              c:identifier="grl_related_keys_set_for_id"
              version="0.3.13">
        <doc xml:space="preserve"
             filename="src/data/grl-related-keys.c"
             line="679">Sets the value associated with @key_name in @relkeys. This @key_name is used to create
a new #GParamSpec instance, which is further used to create and register a key using
grl_registry_register_metadata_key(). If @key_name already has a @value, old value
is replaced by the new one.

A property key_name consists of segments consisting of ASCII letters and
digits, separated by either the '-' or '_' character. The first
character of a property key_name must be a letter. Key_names which violate these
rules lead to undefined behaviour.</doc>
        <source-position filename="src/data/grl-related-keys.h" line="168"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="src/data/grl-related-keys.c"
               line="695">TRUE if @value was set to @key_name, FALSE otherwise.</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <instance-parameter name="relkeys" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="src/data/grl-related-keys.c"
                 line="681">set of related keys to modify</doc>
            <type name="RelatedKeys" c:type="GrlRelatedKeys*"/>
          </instance-parameter>
          <parameter name="key_name" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="src/data/grl-related-keys.c"
                 line="682">name of the key to change or add</doc>
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
          <parameter name="value" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="src/data/grl-related-keys.c"
                 line="683">the new value</doc>
            <type name="GObject.Value" c:type="const GValue*"/>
          </parameter>
        </parameters>
      </method>
      <method name="set_int"
              c:identifier="grl_related_keys_set_int"
              version="0.1.10">
        <doc xml:space="preserve"
             filename="src/data/grl-related-keys.c"
             line="336">Sets the value associated with @key into @relkeys. @key must have been
registered as an int-type key. Old value is replaced by the new one.</doc>
        <source-position filename="src/data/grl-related-keys.h" line="110"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="relkeys" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="src/data/grl-related-keys.c"
                 line="338">set of related keys to change</doc>
            <type name="RelatedKeys" c:type="GrlRelatedKeys*"/>
          </instance-parameter>
          <parameter name="key" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="src/data/grl-related-keys.c"
                 line="339">key to change or add</doc>
            <type name="KeyID" c:type="GrlKeyID"/>
          </parameter>
          <parameter name="intvalue" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="src/data/grl-related-keys.c"
                 line="340">the new value</doc>
            <type name="gint" c:type="gint"/>
          </parameter>
        </parameters>
      </method>
      <method name="set_int64"
              c:identifier="grl_related_keys_set_int64"
              version="0.2.12">
        <doc xml:space="preserve"
             filename="src/data/grl-related-keys.c"
             line="627">Sets the value associated with @key into @relkeys. @key must have been
registered as a int64-type key. Old value is replaced by the new one.</doc>
        <source-position filename="src/data/grl-related-keys.h" line="131"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="relkeys" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="src/data/grl-related-keys.c"
                 line="629">set of related keys to change</doc>
            <type name="RelatedKeys" c:type="GrlRelatedKeys*"/>
          </instance-parameter>
          <parameter name="key" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="src/data/grl-related-keys.c"
                 line="630">key to change or add</doc>
            <type name="KeyID" c:type="GrlKeyID"/>
          </parameter>
          <parameter name="intvalue" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="src/data/grl-related-keys.c"
                 line="631">the new value</doc>
            <type name="gint64" c:type="gint64"/>
          </parameter>
        </parameters>
      </method>
      <method name="set_string"
              c:identifier="grl_related_keys_set_string"
              version="0.1.10">
        <doc xml:space="preserve"
             filename="src/data/grl-related-keys.c"
             line="278">Sets the value associated with @key into @relkeys. @key must have been
registered as a strying-type key. Old value is freed and the new one is set.</doc>
        <source-position filename="src/data/grl-related-keys.h" line="106"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="relkeys" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="src/data/grl-related-keys.c"
                 line="280">set of related keys to modify</doc>
            <type name="RelatedKeys" c:type="GrlRelatedKeys*"/>
          </instance-parameter>
          <parameter name="key" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="src/data/grl-related-keys.c"
                 line="281">key to change or add</doc>
            <type name="KeyID" c:type="GrlKeyID"/>
          </parameter>
          <parameter name="strvalue" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="src/data/grl-related-keys.c"
                 line="282">the new value</doc>
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
        </parameters>
      </method>
      <field name="parent">
        <type name="GObject.Object" c:type="GObject"/>
      </field>
      <field name="priv" readable="0" private="1">
        <type name="RelatedKeysPrivate" c:type="GrlRelatedKeysPrivate*"/>
      </field>
      <field name="_grl_reserved" readable="0" private="1">
        <array zero-terminated="0" fixed-size="8">
          <type name="gpointer" c:type="gpointer"/>
        </array>
      </field>
    </class>
    <record name="RelatedKeysClass"
            c:type="GrlRelatedKeysClass"
            glib:is-gtype-struct-for="RelatedKeys">
      <doc xml:space="preserve"
           filename="src/data/grl-related-keys.h"
           line="80">Grilo Data Multivalued class</doc>
      <source-position filename="src/data/grl-related-keys.h" line="92"/>
      <field name="parent_class">
        <doc xml:space="preserve"
             filename="src/data/grl-related-keys.h"
             line="82">the parent class structure</doc>
        <type name="GObject.ObjectClass" c:type="GObjectClass"/>
      </field>
      <field name="_grl_reserved" readable="0" private="1">
        <array zero-terminated="0" fixed-size="16">
          <type name="gpointer" c:type="gpointer"/>
        </array>
      </field>
    </record>
    <record name="RelatedKeysPrivate"
            c:type="GrlRelatedKeysPrivate"
            disguised="1"
            opaque="1">
      <source-position filename="src/data/grl-related-keys.h" line="65"/>
    </record>
    <bitfield name="ResolutionFlags"
              glib:type-name="GrlResolutionFlags"
              glib:get-type="grl_resolution_flags_get_type"
              c:type="GrlResolutionFlags">
      <doc xml:space="preserve"
           filename="src/grl-operation-options.h"
           line="68">Resolution flags</doc>
      <member name="normal"
              value="0"
              c:identifier="GRL_RESOLVE_NORMAL"
              glib:nick="normal"
              glib:name="GRL_RESOLVE_NORMAL">
        <doc xml:space="preserve"
             filename="src/grl-operation-options.h"
             line="70">Normal mode.</doc>
      </member>
      <member name="full"
              value="1"
              c:identifier="GRL_RESOLVE_FULL"
              glib:nick="full"
              glib:name="GRL_RESOLVE_FULL">
        <doc xml:space="preserve"
             filename="src/grl-operation-options.h"
             line="71">Try other plugins if necessary.</doc>
      </member>
      <member name="idle_relay"
              value="2"
              c:identifier="GRL_RESOLVE_IDLE_RELAY"
              glib:nick="idle-relay"
              glib:name="GRL_RESOLVE_IDLE_RELAY">
        <doc xml:space="preserve"
             filename="src/grl-operation-options.h"
             line="72">Use idle loop to relay results.</doc>
      </member>
      <member name="fast_only"
              value="4"
              c:identifier="GRL_RESOLVE_FAST_ONLY"
              glib:nick="fast-only"
              glib:name="GRL_RESOLVE_FAST_ONLY">
        <doc xml:space="preserve"
             filename="src/grl-operation-options.h"
             line="73">Only resolve fast metadata keys.</doc>
      </member>
    </bitfield>
    <function-macro name="SOURCE" c:identifier="GRL_SOURCE" introspectable="0">
      <source-position filename="src/grl-source.h" line="44"/>
      <parameters>
        <parameter name="obj">
        </parameter>
      </parameters>
    </function-macro>
    <function-macro name="SOURCE_CLASS"
                    c:identifier="GRL_SOURCE_CLASS"
                    introspectable="0">
      <source-position filename="src/grl-source.h" line="53"/>
      <parameters>
        <parameter name="klass">
        </parameter>
      </parameters>
    </function-macro>
    <function-macro name="SOURCE_GET_CLASS"
                    c:identifier="GRL_SOURCE_GET_CLASS"
                    introspectable="0">
      <source-position filename="src/grl-source.h" line="62"/>
      <parameters>
        <parameter name="obj">
        </parameter>
      </parameters>
    </function-macro>
    <constant name="SOURCE_REMAINING_UNKNOWN"
              value="-1"
              c:type="GRL_SOURCE_REMAINING_UNKNOWN">
      <source-position filename="src/grl-definitions.h" line="43"/>
      <type name="gint" c:type="gint"/>
    </constant>
    <class name="Source"
           c:symbol-prefix="source"
           c:type="GrlSource"
           parent="GObject.Object"
           abstract="1"
           glib:type-name="GrlSource"
           glib:get-type="grl_source_get_type"
           glib:type-struct="SourceClass">
      <source-position filename="src/grl-source.h" line="495"/>
      <virtual-method name="browse">
        <doc xml:space="preserve"
             filename="src/grl-source.h"
             line="434">browse through a list of media</doc>
        <source-position filename="src/grl-source.h" line="473"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="source" transfer-ownership="none">
            <type name="Source" c:type="GrlSource*"/>
          </instance-parameter>
          <parameter name="bs" transfer-ownership="none">
            <type name="SourceBrowseSpec" c:type="GrlSourceBrowseSpec*"/>
          </parameter>
        </parameters>
      </virtual-method>
      <virtual-method name="cancel">
        <doc xml:space="preserve"
             filename="src/grl-source.h"
             line="441">cancel the current operation</doc>
        <source-position filename="src/grl-source.h" line="485"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="source" transfer-ownership="none">
            <type name="Source" c:type="GrlSource*"/>
          </instance-parameter>
          <parameter name="operation_id" transfer-ownership="none">
            <type name="guint" c:type="guint"/>
          </parameter>
        </parameters>
      </virtual-method>
      <virtual-method name="get_caps" invoker="get_caps" version="0.2.0">
        <doc xml:space="preserve"
             filename="src/grl-source.c"
             line="4650">Get the capabilities of @source for @operation.</doc>
        <source-position filename="src/grl-source.h" line="460"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="src/grl-source.c"
               line="4658">The capabilities</doc>
          <type name="Caps" c:type="GrlCaps*"/>
        </return-value>
        <parameters>
          <instance-parameter name="source" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="src/grl-source.c"
                 line="4652">a source</doc>
            <type name="Source" c:type="GrlSource*"/>
          </instance-parameter>
          <parameter name="operation" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="src/grl-source.c"
                 line="4653">a supported operation. Even though the type allows to specify
several operations, only one should be provided here.</doc>
            <type name="SupportedOps" c:type="GrlSupportedOps"/>
          </parameter>
        </parameters>
      </virtual-method>
      <virtual-method name="may_resolve" invoker="may_resolve" version="0.2.0">
        <doc xml:space="preserve"
             filename="src/grl-source.c"
             line="3417">Checks whether @key_id may be resolved with @source for @media, so that the
caller can avoid calling grl_source_resolve() if it can be known in
advance it will fail.

If the resolution is known to be impossible because more keys are needed in
@media, and @missing_keys is not @NULL, it is populated with the list of
GrlKeyID that would be needed.

This function is synchronous and should not block.</doc>
        <source-position filename="src/grl-source.h" line="464"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="src/grl-source.c"
               line="3434">@TRUE if there's a possibility that @source resolves @key_id for
@media, @FALSE otherwise.</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <instance-parameter name="source" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="src/grl-source.c"
                 line="3419">a source</doc>
            <type name="Source" c:type="GrlSource*"/>
          </instance-parameter>
          <parameter name="media" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="src/grl-source.c"
                 line="3420">a media on which we want more metadata</doc>
            <type name="Media" c:type="GrlMedia*"/>
          </parameter>
          <parameter name="key_id" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="src/grl-source.c"
                 line="3421">the key corresponding to a metadata we might want</doc>
            <type name="KeyID" c:type="GrlKeyID"/>
          </parameter>
          <parameter name="missing_keys" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="src/grl-source.c"
                 line="3422">an optional originally empty list</doc>
            <type name="GLib.List" c:type="GList**">
              <type name="KeyID"/>
            </type>
          </parameter>
        </parameters>
      </virtual-method>
      <virtual-method name="media_from_uri">
        <doc xml:space="preserve"
             filename="src/grl-source.h"
             line="432">Creates a #GrlMedia instance representing the media
exposed by a certain URI.</doc>
        <source-position filename="src/grl-source.h" line="470"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="source" transfer-ownership="none">
            <type name="Source" c:type="GrlSource*"/>
          </instance-parameter>
          <parameter name="mfus" transfer-ownership="none">
            <type name="SourceMediaFromUriSpec"
                  c:type="GrlSourceMediaFromUriSpec*"/>
          </parameter>
        </parameters>
      </virtual-method>
      <virtual-method name="notify_change_start"
                      invoker="notify_change_start"
                      version="0.2.0"
                      throws="1">
        <doc xml:space="preserve"
             filename="src/grl-source.c"
             line="4492">Starts emitting ::content-changed signals when @source discovers changes in
the content. This instructs @source to setup the machinery needed to be aware
of changes in the content.</doc>
        <source-position filename="src/grl-source.h" line="487"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="src/grl-source.c"
               line="4501">@TRUE if initialization has succeed.</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <instance-parameter name="source" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="src/grl-source.c"
                 line="4494">a source</doc>
            <type name="Source" c:type="GrlSource*"/>
          </instance-parameter>
        </parameters>
      </virtual-method>
      <virtual-method name="notify_change_stop"
                      invoker="notify_change_stop"
                      version="0.2.0"
                      throws="1">
        <doc xml:space="preserve"
             filename="src/grl-source.c"
             line="4518">This will drop emission of ::content-changed signals from @source. When this
is done @source should stop the machinery required for it to track changes in
the content.</doc>
        <source-position filename="src/grl-source.h" line="490"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="src/grl-source.c"
               line="4527">@TRUE if stop has succeed.</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <instance-parameter name="source" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="src/grl-source.c"
                 line="4520">a source</doc>
            <type name="Source" c:type="GrlSource*"/>
          </instance-parameter>
        </parameters>
      </virtual-method>
      <virtual-method name="query">
        <doc xml:space="preserve"
             filename="src/grl-source.h"
             line="436">query for a specific media</doc>
        <source-position filename="src/grl-source.h" line="477"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="source" transfer-ownership="none">
            <type name="Source" c:type="GrlSource*"/>
          </instance-parameter>
          <parameter name="qs" transfer-ownership="none">
            <type name="SourceQuerySpec" c:type="GrlSourceQuerySpec*"/>
          </parameter>
        </parameters>
      </virtual-method>
      <virtual-method name="remove">
        <doc xml:space="preserve"
             filename="src/grl-source.h"
             line="437">remove a media from a container</doc>
        <source-position filename="src/grl-source.h" line="479"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="source" transfer-ownership="none">
            <type name="Source" c:type="GrlSource*"/>
          </instance-parameter>
          <parameter name="rs" transfer-ownership="none">
            <type name="SourceRemoveSpec" c:type="GrlSourceRemoveSpec*"/>
          </parameter>
        </parameters>
      </virtual-method>
      <virtual-method name="resolve">
        <doc xml:space="preserve"
             filename="src/grl-source.h"
             line="428">resolve the metadata of a given transfer object</doc>
        <source-position filename="src/grl-source.h" line="462"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="source" transfer-ownership="none">
            <type name="Source" c:type="GrlSource*"/>
          </instance-parameter>
          <parameter name="ms" transfer-ownership="none">
            <type name="SourceResolveSpec" c:type="GrlSourceResolveSpec*"/>
          </parameter>
        </parameters>
      </virtual-method>
      <virtual-method name="search">
        <doc xml:space="preserve"
             filename="src/grl-source.h"
             line="435">search for media</doc>
        <source-position filename="src/grl-source.h" line="475"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="source" transfer-ownership="none">
            <type name="Source" c:type="GrlSource*"/>
          </instance-parameter>
          <parameter name="ss" transfer-ownership="none">
            <type name="SourceSearchSpec" c:type="GrlSourceSearchSpec*"/>
          </parameter>
        </parameters>
      </virtual-method>
      <virtual-method name="slow_keys" invoker="slow_keys" version="0.2.0">
        <doc xml:space="preserve"
             filename="src/grl-source.c"
             line="2920">Similar to grl_source_supported_keys(), but these keys
are marked as slow because of the amount of traffic/processing needed
to fetch them.</doc>
        <source-position filename="src/grl-source.h" line="456"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="src/grl-source.c"
               line="2928">a #GList with the keys</doc>
          <type name="GLib.List" c:type="const GList*">
            <type name="KeyID"/>
          </type>
        </return-value>
        <parameters>
          <instance-parameter name="source" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="src/grl-source.c"
                 line="2922">a source</doc>
            <type name="Source" c:type="GrlSource*"/>
          </instance-parameter>
        </parameters>
      </virtual-method>
      <virtual-method name="store">
        <doc xml:space="preserve"
             filename="src/grl-source.h"
             line="438">store a media in a container</doc>
        <source-position filename="src/grl-source.h" line="481"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="source" transfer-ownership="none">
            <type name="Source" c:type="GrlSource*"/>
          </instance-parameter>
          <parameter name="ss" transfer-ownership="none">
            <type name="SourceStoreSpec" c:type="GrlSourceStoreSpec*"/>
          </parameter>
        </parameters>
      </virtual-method>
      <virtual-method name="store_metadata">
        <doc xml:space="preserve"
             filename="src/grl-source.h"
             line="439">update metadata values for a given object in a
permanent fashion</doc>
        <source-position filename="src/grl-source.h" line="483"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="source" transfer-ownership="none">
            <type name="Source" c:type="GrlSource*"/>
          </instance-parameter>
          <parameter name="sms" transfer-ownership="none">
            <type name="SourceStoreMetadataSpec"
                  c:type="GrlSourceStoreMetadataSpec*"/>
          </parameter>
        </parameters>
      </virtual-method>
      <virtual-method name="supported_keys"
                      invoker="supported_keys"
                      version="0.2.0">
        <doc xml:space="preserve"
             filename="src/grl-source.c"
             line="2897">Get a list of #GrlKeyID, which describe a metadata types that this
source can fetch and store.</doc>
        <source-position filename="src/grl-source.h" line="454"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="src/grl-source.c"
               line="2904">a #GList with the keys</doc>
          <type name="GLib.List" c:type="const GList*">
            <type name="KeyID"/>
          </type>
        </return-value>
        <parameters>
          <instance-parameter name="source" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="src/grl-source.c"
                 line="2899">a source</doc>
            <type name="Source" c:type="GrlSource*"/>
          </instance-parameter>
        </parameters>
      </virtual-method>
      <virtual-method name="supported_operations">
        <doc xml:space="preserve"
             filename="src/grl-source.h"
             line="423">the operations that can be called</doc>
        <source-position filename="src/grl-source.h" line="452"/>
        <return-value transfer-ownership="none">
          <type name="SupportedOps" c:type="GrlSupportedOps"/>
        </return-value>
        <parameters>
          <instance-parameter name="source" transfer-ownership="none">
            <type name="Source" c:type="GrlSource*"/>
          </instance-parameter>
        </parameters>
      </virtual-method>
      <virtual-method name="test_media_from_uri"
                      invoker="test_media_from_uri"
                      version="0.2.0">
        <doc xml:space="preserve"
             filename="src/grl-source.c"
             line="3490">Tests whether @source can instantiate a #GrlMedia object representing
the media resource exposed at @uri.</doc>
        <source-position filename="src/grl-source.h" line="467"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="src/grl-source.c"
               line="3498">%TRUE if it can, %FALSE otherwise.

This method is synchronous.</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <instance-parameter name="source" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="src/grl-source.c"
                 line="3492">a source</doc>
            <type name="Source" c:type="GrlSource*"/>
          </instance-parameter>
          <parameter name="uri" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="src/grl-source.c"
                 line="3493">A URI that can be used to identify a media resource</doc>
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
        </parameters>
      </virtual-method>
      <virtual-method name="writable_keys"
                      invoker="writable_keys"
                      version="0.2.0">
        <doc xml:space="preserve"
             filename="src/grl-source.c"
             line="2944">Similar to grl_source_supported_keys(), but these keys
are marked as writable, meaning the source allows the client
to provide new values for these keys that will be stored permanently.</doc>
        <source-position filename="src/grl-source.h" line="458"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="src/grl-source.c"
               line="2952">
a #GList with the keys</doc>
          <type name="GLib.List" c:type="const GList*">
            <type name="KeyID"/>
          </type>
        </return-value>
        <parameters>
          <instance-parameter name="source" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="src/grl-source.c"
                 line="2946">a source</doc>
            <type name="Source" c:type="GrlSource*"/>
          </instance-parameter>
        </parameters>
      </virtual-method>
      <method name="browse" c:identifier="grl_source_browse" version="0.2.0">
        <doc xml:space="preserve"
             filename="src/grl-source.c"
             line="3677">Browse from media elements through an available list.

This method is asynchronous.</doc>
        <source-position filename="src/grl-source.h" line="552"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="src/grl-source.c"
               line="3691">the operation identifier</doc>
          <type name="guint" c:type="guint"/>
        </return-value>
        <parameters>
          <instance-parameter name="source" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="src/grl-source.c"
                 line="3679">a source</doc>
            <type name="Source" c:type="GrlSource*"/>
          </instance-parameter>
          <parameter name="container"
                     transfer-ownership="none"
                     nullable="1"
                     allow-none="1">
            <doc xml:space="preserve"
                 filename="src/grl-source.c"
                 line="3680">a container of data transfer objects</doc>
            <type name="Media" c:type="GrlMedia*"/>
          </parameter>
          <parameter name="keys" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="src/grl-source.c"
                 line="3681">the #GList of
#GrlKeyID&lt;!-- --&gt;s to request</doc>
            <type name="GLib.List" c:type="const GList*">
              <type name="KeyID"/>
            </type>
          </parameter>
          <parameter name="options" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="src/grl-source.c"
                 line="3683">options wanted for that operation</doc>
            <type name="OperationOptions" c:type="GrlOperationOptions*"/>
          </parameter>
          <parameter name="callback"
                     transfer-ownership="none"
                     scope="notified"
                     closure="4">
            <doc xml:space="preserve"
                 filename="src/grl-source.c"
                 line="3684">the user defined callback</doc>
            <type name="SourceResultCb" c:type="GrlSourceResultCb"/>
          </parameter>
          <parameter name="user_data"
                     transfer-ownership="none"
                     nullable="1"
                     allow-none="1">
            <doc xml:space="preserve"
                 filename="src/grl-source.c"
                 line="3685">the user data to pass in the callback</doc>
            <type name="gpointer" c:type="gpointer"/>
          </parameter>
        </parameters>
      </method>
      <method name="browse_sync"
              c:identifier="grl_source_browse_sync"
              version="0.2.0"
              throws="1">
        <doc xml:space="preserve"
             filename="src/grl-source.c"
             line="3786">Browse media elements through an available
list.

This method is synchronous.</doc>
        <source-position filename="src/grl-source.h" line="559"/>
        <return-value transfer-ownership="full">
          <doc xml:space="preserve"
               filename="src/grl-source.c"
               line="3800">a #GList with #GrlMedia
elements. After use g_object_unref() every element and g_list_free() the
list.</doc>
          <type name="GLib.List" c:type="GList*">
            <type name="Media"/>
          </type>
        </return-value>
        <parameters>
          <instance-parameter name="source" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="src/grl-source.c"
                 line="3788">a source</doc>
            <type name="Source" c:type="GrlSource*"/>
          </instance-parameter>
          <parameter name="container"
                     transfer-ownership="none"
                     nullable="1"
                     allow-none="1">
            <doc xml:space="preserve"
                 filename="src/grl-source.c"
                 line="3789">a container of data transfer objects</doc>
            <type name="Media" c:type="GrlMedia*"/>
          </parameter>
          <parameter name="keys" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="src/grl-source.c"
                 line="3790">the #GList of
#GrlKeyID&lt;!-- --&gt;s to request</doc>
            <type name="GLib.List" c:type="const GList*">
              <type name="KeyID"/>
            </type>
          </parameter>
          <parameter name="options" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="src/grl-source.c"
                 line="3792">options wanted for that operation</doc>
            <type name="OperationOptions" c:type="GrlOperationOptions*"/>
          </parameter>
        </parameters>
      </method>
      <method name="get_auto_split_threshold"
              c:identifier="grl_source_get_auto_split_threshold"
              glib:get-property="auto-split-threshold"
              version="0.2.0">
        <doc xml:space="preserve"
             filename="src/grl-source.c"
             line="3160">Gets how much elements the source is able to handle in a single request.

See #grl_source_set_auto_split_threshold()</doc>
        <source-position filename="src/grl-source.h" line="515"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="src/grl-source.c"
               line="3168">the assigned threshold, or 0 if there is no threshold</doc>
          <type name="guint" c:type="guint"/>
        </return-value>
        <parameters>
          <instance-parameter name="source" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="src/grl-source.c"
                 line="3162">a source</doc>
            <type name="Source" c:type="GrlSource*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_caps"
              c:identifier="grl_source_get_caps"
              version="0.2.0">
        <doc xml:space="preserve"
             filename="src/grl-source.c"
             line="4650">Get the capabilities of @source for @operation.</doc>
        <source-position filename="src/grl-source.h" line="509"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="src/grl-source.c"
               line="4658">The capabilities</doc>
          <type name="Caps" c:type="GrlCaps*"/>
        </return-value>
        <parameters>
          <instance-parameter name="source" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="src/grl-source.c"
                 line="4652">a source</doc>
            <type name="Source" c:type="GrlSource*"/>
          </instance-parameter>
          <parameter name="operation" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="src/grl-source.c"
                 line="4653">a supported operation. Even though the type allows to specify
several operations, only one should be provided here.</doc>
            <type name="SupportedOps" c:type="GrlSupportedOps"/>
          </parameter>
        </parameters>
      </method>
      <method name="get_description"
              c:identifier="grl_source_get_description"
              version="0.2.0">
        <source-position filename="src/grl-source.h" line="648"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="src/grl-source.c"
               line="3021">the description of the @source</doc>
          <type name="utf8" c:type="const gchar*"/>
        </return-value>
        <parameters>
          <instance-parameter name="source" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="src/grl-source.c"
                 line="3019">a source</doc>
            <type name="Source" c:type="GrlSource*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_icon"
              c:identifier="grl_source_get_icon"
              version="0.2.8">
        <source-position filename="src/grl-source.h" line="646"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="src/grl-source.c"
               line="3005">a #GIcon</doc>
          <type name="Gio.Icon" c:type="GIcon*"/>
        </return-value>
        <parameters>
          <instance-parameter name="source" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="src/grl-source.c"
                 line="3003">a source</doc>
            <type name="Source" c:type="GrlSource*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_id" c:identifier="grl_source_get_id" version="0.2.0">
        <source-position filename="src/grl-source.h" line="642"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="src/grl-source.c"
               line="2973">the ID of the @source</doc>
          <type name="utf8" c:type="const gchar*"/>
        </return-value>
        <parameters>
          <instance-parameter name="source" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="src/grl-source.c"
                 line="2971">a source</doc>
            <type name="Source" c:type="GrlSource*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_media_from_uri"
              c:identifier="grl_source_get_media_from_uri"
              version="0.2.0">
        <doc xml:space="preserve"
             filename="src/grl-source.c"
             line="3520">Creates an instance of #GrlMedia representing the media resource
exposed at @uri.

It is recommended to call grl_source_test_media_from_uri() before invoking
this to check whether the target source can theoretically do the resolution.

This method is asynchronous.</doc>
        <source-position filename="src/grl-source.h" line="539"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="src/grl-source.c"
               line="3537">the operation identifier</doc>
          <type name="guint" c:type="guint"/>
        </return-value>
        <parameters>
          <instance-parameter name="source" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="src/grl-source.c"
                 line="3522">a source</doc>
            <type name="Source" c:type="GrlSource*"/>
          </instance-parameter>
          <parameter name="uri" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="src/grl-source.c"
                 line="3523">A URI that can be used to identify a media resource</doc>
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
          <parameter name="keys" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="src/grl-source.c"
                 line="3524">A list of keys to resolve</doc>
            <type name="GLib.List" c:type="const GList*">
              <type name="KeyID"/>
            </type>
          </parameter>
          <parameter name="options" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="src/grl-source.c"
                 line="3525">options wanted for that operation</doc>
            <type name="OperationOptions" c:type="GrlOperationOptions*"/>
          </parameter>
          <parameter name="callback"
                     transfer-ownership="none"
                     scope="notified"
                     closure="4">
            <doc xml:space="preserve"
                 filename="src/grl-source.c"
                 line="3526">the user defined callback</doc>
            <type name="SourceResolveCb" c:type="GrlSourceResolveCb"/>
          </parameter>
          <parameter name="user_data"
                     transfer-ownership="none"
                     nullable="1"
                     allow-none="1">
            <doc xml:space="preserve"
                 filename="src/grl-source.c"
                 line="3527">the user data to pass in the callback</doc>
            <type name="gpointer" c:type="gpointer"/>
          </parameter>
        </parameters>
      </method>
      <method name="get_media_from_uri_sync"
              c:identifier="grl_source_get_media_from_uri_sync"
              version="0.2.0"
              throws="1">
        <doc xml:space="preserve"
             filename="src/grl-source.c"
             line="3622">Creates an instance of #GrlMedia representing the media resource
exposed at @uri.

It is recommended to call grl_source_test_media_from_uri() before
invoking this to check whether the target source can theoretically do the
resolution.

This method is synchronous.</doc>
        <source-position filename="src/grl-source.h" line="546"/>
        <return-value transfer-ownership="full">
          <doc xml:space="preserve"
               filename="src/grl-source.c"
               line="3639">a filled #GrlMedia</doc>
          <type name="Media" c:type="GrlMedia*"/>
        </return-value>
        <parameters>
          <instance-parameter name="source" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="src/grl-source.c"
                 line="3624">a source</doc>
            <type name="Source" c:type="GrlSource*"/>
          </instance-parameter>
          <parameter name="uri" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="src/grl-source.c"
                 line="3625">A URI that can be used to identify a media resource</doc>
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
          <parameter name="keys" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="src/grl-source.c"
                 line="3626">a list of keys to resolve</doc>
            <type name="GLib.List" c:type="const GList*">
              <type name="KeyID"/>
            </type>
          </parameter>
          <parameter name="options" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="src/grl-source.c"
                 line="3627">options wanted for that operation</doc>
            <type name="OperationOptions" c:type="GrlOperationOptions*"/>
          </parameter>
        </parameters>
      </method>
      <method name="get_name"
              c:identifier="grl_source_get_name"
              version="0.2.0">
        <source-position filename="src/grl-source.h" line="644"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="src/grl-source.c"
               line="2989">the name of the @source</doc>
          <type name="utf8" c:type="const gchar*"/>
        </return-value>
        <parameters>
          <instance-parameter name="source" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="src/grl-source.c"
                 line="2987">a source</doc>
            <type name="Source" c:type="GrlSource*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_plugin"
              c:identifier="grl_source_get_plugin"
              glib:get-property="plugin"
              version="0.2.0">
        <source-position filename="src/grl-source.h" line="650"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="src/grl-source.c"
               line="3053">the plugin this source belongs to</doc>
          <type name="Plugin" c:type="GrlPlugin*"/>
        </return-value>
        <parameters>
          <instance-parameter name="source" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="src/grl-source.c"
                 line="3051">a source</doc>
            <type name="Source" c:type="GrlSource*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_rank"
              c:identifier="grl_source_get_rank"
              glib:get-property="rank"
              version="0.2.0">
        <doc xml:space="preserve"
             filename="src/grl-source.c"
             line="3065">Gets the source rank</doc>
        <source-position filename="src/grl-source.h" line="652"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="src/grl-source.c"
               line="3071">rank value</doc>
          <type name="gint" c:type="gint"/>
        </return-value>
        <parameters>
          <instance-parameter name="source" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="src/grl-source.c"
                 line="3067">a source</doc>
            <type name="Source" c:type="GrlSource*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_supported_media"
              c:identifier="grl_source_get_supported_media"
              glib:get-property="supported-media"
              version="0.3.0">
        <doc xml:space="preserve"
             filename="src/grl-source.c"
             line="3083">Gets the supported type of medias @source can deal with.</doc>
        <source-position filename="src/grl-source.h" line="654"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="src/grl-source.c"
               line="3089">a #GrlSupportedMedia value</doc>
          <type name="SupportedMedia" c:type="GrlSupportedMedia"/>
        </return-value>
        <parameters>
          <instance-parameter name="source" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="src/grl-source.c"
                 line="3085">a source</doc>
            <type name="Source" c:type="GrlSource*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_tags"
              c:identifier="grl_source_get_tags"
              version="0.2.10">
        <source-position filename="src/grl-source.h" line="656"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="src/grl-source.c"
               line="3037">a %NULL-terminated list of tags</doc>
          <array c:type="const char**">
            <type name="utf8"/>
          </array>
        </return-value>
        <parameters>
          <instance-parameter name="source" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="src/grl-source.c"
                 line="3035">a source</doc>
            <type name="Source" c:type="GrlSource*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="may_resolve"
              c:identifier="grl_source_may_resolve"
              version="0.2.0">
        <doc xml:space="preserve"
             filename="src/grl-source.c"
             line="3417">Checks whether @key_id may be resolved with @source for @media, so that the
caller can avoid calling grl_source_resolve() if it can be known in
advance it will fail.

If the resolution is known to be impossible because more keys are needed in
@media, and @missing_keys is not @NULL, it is populated with the list of
GrlKeyID that would be needed.

This function is synchronous and should not block.</doc>
        <source-position filename="src/grl-source.h" line="531"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="src/grl-source.c"
               line="3434">@TRUE if there's a possibility that @source resolves @key_id for
@media, @FALSE otherwise.</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <instance-parameter name="source" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="src/grl-source.c"
                 line="3419">a source</doc>
            <type name="Source" c:type="GrlSource*"/>
          </instance-parameter>
          <parameter name="media" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="src/grl-source.c"
                 line="3420">a media on which we want more metadata</doc>
            <type name="Media" c:type="GrlMedia*"/>
          </parameter>
          <parameter name="key_id" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="src/grl-source.c"
                 line="3421">the key corresponding to a metadata we might want</doc>
            <type name="KeyID" c:type="GrlKeyID"/>
          </parameter>
          <parameter name="missing_keys" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="src/grl-source.c"
                 line="3422">an optional originally empty list</doc>
            <type name="GLib.List" c:type="GList**">
              <type name="KeyID"/>
            </type>
          </parameter>
        </parameters>
      </method>
      <method name="notify_change"
              c:identifier="grl_source_notify_change"
              version="0.2.0">
        <doc xml:space="preserve"
             filename="src/grl-source.c"
             line="4607">Emits "content-changed" signal to notify subscribers that a change ocurred
in @source.

See #grl_source_notify_change_list() function.

&lt;note&gt;
 &lt;para&gt;
   This function is intended to be used only by plugins.
 &lt;/para&gt;
&lt;/note&gt;</doc>
        <source-position filename="src/grl-source.h" line="637"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="source" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="src/grl-source.c"
                 line="4609">a source</doc>
            <type name="Source" c:type="GrlSource*"/>
          </instance-parameter>
          <parameter name="media"
                     transfer-ownership="none"
                     nullable="1"
                     allow-none="1">
            <doc xml:space="preserve"
                 filename="src/grl-source.c"
                 line="4610">the media which has changed, or @NULL to use the root container.</doc>
            <type name="Media" c:type="GrlMedia*"/>
          </parameter>
          <parameter name="change_type" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="src/grl-source.c"
                 line="4611">the type of change</doc>
            <type name="SourceChangeType" c:type="GrlSourceChangeType"/>
          </parameter>
          <parameter name="location_unknown" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="src/grl-source.c"
                 line="4612">if change has happened in @media or any descendant</doc>
            <type name="gboolean" c:type="gboolean"/>
          </parameter>
        </parameters>
      </method>
      <method name="notify_change_list"
              c:identifier="grl_source_notify_change_list"
              version="0.2.0">
        <doc xml:space="preserve"
             filename="src/grl-source.c"
             line="4553">Emits "content-changed" signal to notify subscribers that a change ocurred
in @source.

The function will take ownership of @changed medias and it should not be
manipulated in any way by the caller after invoking this function. If that is
needed, the caller must ref the array in advance.

See GrlSource::content-changed signal.

&lt;note&gt;
 &lt;para&gt;
   This function is intended to be used only by plugins.
 &lt;/para&gt;
&lt;/note&gt;</doc>
        <source-position filename="src/grl-source.h" line="632"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="source" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="src/grl-source.c"
                 line="4555">a source</doc>
            <type name="Source" c:type="GrlSource*"/>
          </instance-parameter>
          <parameter name="changed_medias" transfer-ownership="full">
            <doc xml:space="preserve"
                 filename="src/grl-source.c"
                 line="4556">the list of
medias that have changed</doc>
            <array name="GLib.PtrArray" c:type="GPtrArray*">
              <type name="Media"/>
            </array>
          </parameter>
          <parameter name="change_type" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="src/grl-source.c"
                 line="4558">the type of change</doc>
            <type name="SourceChangeType" c:type="GrlSourceChangeType"/>
          </parameter>
          <parameter name="location_unknown" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="src/grl-source.c"
                 line="4559">if change has happpened in @media or any descendant</doc>
            <type name="gboolean" c:type="gboolean"/>
          </parameter>
        </parameters>
      </method>
      <method name="notify_change_start"
              c:identifier="grl_source_notify_change_start"
              version="0.2.0"
              throws="1">
        <doc xml:space="preserve"
             filename="src/grl-source.c"
             line="4492">Starts emitting ::content-changed signals when @source discovers changes in
the content. This instructs @source to setup the machinery needed to be aware
of changes in the content.</doc>
        <source-position filename="src/grl-source.h" line="626"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="src/grl-source.c"
               line="4501">@TRUE if initialization has succeed.</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <instance-parameter name="source" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="src/grl-source.c"
                 line="4494">a source</doc>
            <type name="Source" c:type="GrlSource*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="notify_change_stop"
              c:identifier="grl_source_notify_change_stop"
              version="0.2.0"
              throws="1">
        <doc xml:space="preserve"
             filename="src/grl-source.c"
             line="4518">This will drop emission of ::content-changed signals from @source. When this
is done @source should stop the machinery required for it to track changes in
the content.</doc>
        <source-position filename="src/grl-source.h" line="629"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="src/grl-source.c"
               line="4527">@TRUE if stop has succeed.</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <instance-parameter name="source" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="src/grl-source.c"
                 line="4520">a source</doc>
            <type name="Source" c:type="GrlSource*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="query" c:identifier="grl_source_query" version="0.2.0">
        <doc xml:space="preserve"
             filename="src/grl-source.c"
             line="4003">Execute a specialized query (specific for each provider) on a media
repository.

It is different from grl_source_search() semantically, because the query
implies a carefully crafted string, rather than a simple string to search.

This method is asynchronous.</doc>
        <source-position filename="src/grl-source.h" line="578"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="src/grl-source.c"
               line="4021">the operation identifier</doc>
          <type name="guint" c:type="guint"/>
        </return-value>
        <parameters>
          <instance-parameter name="source" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="src/grl-source.c"
                 line="4005">a source</doc>
            <type name="Source" c:type="GrlSource*"/>
          </instance-parameter>
          <parameter name="query" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="src/grl-source.c"
                 line="4006">the query to process</doc>
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
          <parameter name="keys" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="src/grl-source.c"
                 line="4007">the #GList of
#GrlKeyID&lt;!-- --&gt;s to request</doc>
            <type name="GLib.List" c:type="const GList*">
              <type name="KeyID"/>
            </type>
          </parameter>
          <parameter name="options" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="src/grl-source.c"
                 line="4009">options wanted for that operation</doc>
            <type name="OperationOptions" c:type="GrlOperationOptions*"/>
          </parameter>
          <parameter name="callback"
                     transfer-ownership="none"
                     scope="notified"
                     closure="4">
            <doc xml:space="preserve"
                 filename="src/grl-source.c"
                 line="4010">the user defined callback</doc>
            <type name="SourceResultCb" c:type="GrlSourceResultCb"/>
          </parameter>
          <parameter name="user_data"
                     transfer-ownership="none"
                     nullable="1"
                     allow-none="1">
            <doc xml:space="preserve"
                 filename="src/grl-source.c"
                 line="4011">the user data to pass in the callback</doc>
            <type name="gpointer" c:type="gpointer"/>
          </parameter>
        </parameters>
      </method>
      <method name="query_sync"
              c:identifier="grl_source_query_sync"
              version="0.2.0"
              throws="1">
        <doc xml:space="preserve"
             filename="src/grl-source.c"
             line="4107">Execute a specialized query (specific for each provider) on a media
repository.

This method is synchronous.</doc>
        <source-position filename="src/grl-source.h" line="585"/>
        <return-value transfer-ownership="full">
          <doc xml:space="preserve"
               filename="src/grl-source.c"
               line="4121">a #GList with #GrlMedia
elements. After use g_object_unref() every element and g_list_free() the
list.</doc>
          <type name="GLib.List" c:type="GList*">
            <type name="Media"/>
          </type>
        </return-value>
        <parameters>
          <instance-parameter name="source" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="src/grl-source.c"
                 line="4109">a source</doc>
            <type name="Source" c:type="GrlSource*"/>
          </instance-parameter>
          <parameter name="query" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="src/grl-source.c"
                 line="4110">the query to process</doc>
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
          <parameter name="keys" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="src/grl-source.c"
                 line="4111">the #GList of
#GrlKeyID&lt;!-- --&gt;s to request</doc>
            <type name="GLib.List" c:type="const GList*">
              <type name="KeyID"/>
            </type>
          </parameter>
          <parameter name="options" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="src/grl-source.c"
                 line="4113">options wanted for that operation</doc>
            <type name="OperationOptions" c:type="GrlOperationOptions*"/>
          </parameter>
        </parameters>
      </method>
      <method name="remove" c:identifier="grl_source_remove" version="0.2.0">
        <doc xml:space="preserve"
             filename="src/grl-source.c"
             line="4210">Remove a @media from the @source repository.

This method is asynchronous.</doc>
        <source-position filename="src/grl-source.h" line="591"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="source" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="src/grl-source.c"
                 line="4212">a source</doc>
            <type name="Source" c:type="GrlSource*"/>
          </instance-parameter>
          <parameter name="media" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="src/grl-source.c"
                 line="4213">a data transfer object</doc>
            <type name="Media" c:type="GrlMedia*"/>
          </parameter>
          <parameter name="callback"
                     transfer-ownership="none"
                     scope="notified"
                     closure="2">
            <doc xml:space="preserve"
                 filename="src/grl-source.c"
                 line="4214">the user defined callback</doc>
            <type name="SourceRemoveCb" c:type="GrlSourceRemoveCb"/>
          </parameter>
          <parameter name="user_data"
                     transfer-ownership="none"
                     nullable="1"
                     allow-none="1">
            <doc xml:space="preserve"
                 filename="src/grl-source.c"
                 line="4215">the user data to pass in the callback</doc>
            <type name="gpointer" c:type="gpointer"/>
          </parameter>
        </parameters>
      </method>
      <method name="remove_sync"
              c:identifier="grl_source_remove_sync"
              version="0.2.0"
              throws="1">
        <doc xml:space="preserve"
             filename="src/grl-source.c"
             line="4232">Remove a @media from the @source repository.

This method is synchronous.</doc>
        <source-position filename="src/grl-source.h" line="596"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="source" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="src/grl-source.c"
                 line="4234">a source</doc>
            <type name="Source" c:type="GrlSource*"/>
          </instance-parameter>
          <parameter name="media" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="src/grl-source.c"
                 line="4235">a data transfer object</doc>
            <type name="Media" c:type="GrlMedia*"/>
          </parameter>
        </parameters>
      </method>
      <method name="resolve" c:identifier="grl_source_resolve" version="0.2.0">
        <doc xml:space="preserve"
             filename="src/grl-source.c"
             line="3211">This method is intended to fetch the requested keys of metadata of
a given @media to the media source.

This method is asynchronous.</doc>
        <source-position filename="src/grl-source.h" line="518"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="src/grl-source.c"
               line="3226">the operation identifie</doc>
          <type name="guint" c:type="guint"/>
        </return-value>
        <parameters>
          <instance-parameter name="source" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="src/grl-source.c"
                 line="3213">a source</doc>
            <type name="Source" c:type="GrlSource*"/>
          </instance-parameter>
          <parameter name="media"
                     transfer-ownership="full"
                     nullable="1"
                     allow-none="1">
            <doc xml:space="preserve"
                 filename="src/grl-source.c"
                 line="3214">a data transfer object</doc>
            <type name="Media" c:type="GrlMedia*"/>
          </parameter>
          <parameter name="keys" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="src/grl-source.c"
                 line="3215">the #GList of
#GrlKeyID&lt;!-- --&gt;s to request</doc>
            <type name="GLib.List" c:type="const GList*">
              <type name="KeyID"/>
            </type>
          </parameter>
          <parameter name="options" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="src/grl-source.c"
                 line="3217">options to pass to this operation</doc>
            <type name="OperationOptions" c:type="GrlOperationOptions*"/>
          </parameter>
          <parameter name="callback"
                     transfer-ownership="none"
                     scope="notified"
                     closure="4">
            <doc xml:space="preserve"
                 filename="src/grl-source.c"
                 line="3218">the user defined callback</doc>
            <type name="SourceResolveCb" c:type="GrlSourceResolveCb"/>
          </parameter>
          <parameter name="user_data"
                     transfer-ownership="none"
                     nullable="1"
                     allow-none="1">
            <doc xml:space="preserve"
                 filename="src/grl-source.c"
                 line="3219">the user data to pass in the callback</doc>
            <type name="gpointer" c:type="gpointer"/>
          </parameter>
        </parameters>
      </method>
      <method name="resolve_sync"
              c:identifier="grl_source_resolve_sync"
              version="0.2.0"
              throws="1">
        <doc xml:space="preserve"
             filename="src/grl-source.c"
             line="3367">This method is intended to fetch the requested keys of metadata of
a given @media to the media source.

This method is synchronous.</doc>
        <source-position filename="src/grl-source.h" line="525"/>
        <return-value transfer-ownership="full">
          <doc xml:space="preserve"
               filename="src/grl-source.c"
               line="3381">a filled #GrlMedia</doc>
          <type name="Media" c:type="GrlMedia*"/>
        </return-value>
        <parameters>
          <instance-parameter name="source" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="src/grl-source.c"
                 line="3369">a source</doc>
            <type name="Source" c:type="GrlSource*"/>
          </instance-parameter>
          <parameter name="media"
                     transfer-ownership="full"
                     nullable="1"
                     allow-none="1">
            <doc xml:space="preserve"
                 filename="src/grl-source.c"
                 line="3370">a data transfer object</doc>
            <type name="Media" c:type="GrlMedia*"/>
          </parameter>
          <parameter name="keys" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="src/grl-source.c"
                 line="3371">the #GList of
#GrlKeyID&lt;!-- --&gt;s to request</doc>
            <type name="GLib.List" c:type="const GList*">
              <type name="KeyID"/>
            </type>
          </parameter>
          <parameter name="options" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="src/grl-source.c"
                 line="3373">options to pass to this operation</doc>
            <type name="OperationOptions" c:type="GrlOperationOptions*"/>
          </parameter>
        </parameters>
      </method>
      <method name="search" c:identifier="grl_source_search" version="0.2.0">
        <doc xml:space="preserve"
             filename="src/grl-source.c"
             line="3840">Search for the @text string in a source for data identified with that string.

If @text is @NULL then no text filter will be applied, and thus, no media
items from @source will be filtered. If @source does not support NULL-text
search operations it should notiy the client by setting
@GRL_CORE_ERROR_SEARCH_NULL_UNSUPPORTED in @callback's error parameter.

This method is asynchronous.</doc>
        <source-position filename="src/grl-source.h" line="565"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="src/grl-source.c"
               line="3859">the operation identifier</doc>
          <type name="guint" c:type="guint"/>
        </return-value>
        <parameters>
          <instance-parameter name="source" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="src/grl-source.c"
                 line="3842">a source</doc>
            <type name="Source" c:type="GrlSource*"/>
          </instance-parameter>
          <parameter name="text" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="src/grl-source.c"
                 line="3843">the text to search</doc>
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
          <parameter name="keys" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="src/grl-source.c"
                 line="3844">the #GList of
#GrlKeyID&lt;!-- --&gt;s to request</doc>
            <type name="GLib.List" c:type="const GList*">
              <type name="KeyID"/>
            </type>
          </parameter>
          <parameter name="options" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="src/grl-source.c"
                 line="3846">options wanted for that operation</doc>
            <type name="OperationOptions" c:type="GrlOperationOptions*"/>
          </parameter>
          <parameter name="callback"
                     transfer-ownership="none"
                     scope="notified"
                     closure="4">
            <doc xml:space="preserve"
                 filename="src/grl-source.c"
                 line="3847">the user defined callback</doc>
            <type name="SourceResultCb" c:type="GrlSourceResultCb"/>
          </parameter>
          <parameter name="user_data"
                     transfer-ownership="none"
                     nullable="1"
                     allow-none="1">
            <doc xml:space="preserve"
                 filename="src/grl-source.c"
                 line="3848">the user data to pass in the callback</doc>
            <type name="gpointer" c:type="gpointer"/>
          </parameter>
        </parameters>
      </method>
      <method name="search_sync"
              c:identifier="grl_source_search_sync"
              version="0.2.0"
              throws="1">
        <doc xml:space="preserve"
             filename="src/grl-source.c"
             line="3945">Search for the @text string in a source for data identified with that string.

If @text is @NULL then no text filter will be applied, and thus, no media
items from @source will be filtered. If @source does not support NULL-text
search operations it should notiy the client by setting
@GRL_CORE_ERROR_SEARCH_NULL_UNSUPPORTED in the error parameter.

This method is synchronous.</doc>
        <source-position filename="src/grl-source.h" line="572"/>
        <return-value transfer-ownership="full">
          <doc xml:space="preserve"
               filename="src/grl-source.c"
               line="3963">a #GList with #GrlMedia
elements. After use g_object_unref() every element and g_list_free() the
list.</doc>
          <type name="GLib.List" c:type="GList*">
            <type name="Media"/>
          </type>
        </return-value>
        <parameters>
          <instance-parameter name="source" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="src/grl-source.c"
                 line="3947">a source</doc>
            <type name="Source" c:type="GrlSource*"/>
          </instance-parameter>
          <parameter name="text" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="src/grl-source.c"
                 line="3948">the text to search</doc>
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
          <parameter name="keys" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="src/grl-source.c"
                 line="3949">the #GList of
#GrlKeyID&lt;!-- --&gt;s to request</doc>
            <type name="GLib.List" c:type="const GList*">
              <type name="KeyID"/>
            </type>
          </parameter>
          <parameter name="options" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="src/grl-source.c"
                 line="3951">options wanted for that operation</doc>
            <type name="OperationOptions" c:type="GrlOperationOptions*"/>
          </parameter>
        </parameters>
      </method>
      <method name="set_auto_split_threshold"
              c:identifier="grl_source_set_auto_split_threshold"
              glib:set-property="auto-split-threshold"
              version="0.2.0">
        <doc xml:space="preserve"
             filename="src/grl-source.c"
             line="3180">Sets how much elements the source is able to handle in a single request.

If user, during a search or browsing operation, asks for more elements than
the threshold, the request will be automatically splitted in chunks, so up to
@threshold elements will be asked in each request.

Source will act as if user were asking just a chunk, and user won't notice
that the request was chunked.

&lt;note&gt;
 &lt;para&gt;
   This function is intended to be used only by plugins.
 &lt;/para&gt;
&lt;/note&gt;</doc>
        <source-position filename="src/grl-source.h" line="512"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="source" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="src/grl-source.c"
                 line="3182">a source</doc>
            <type name="Source" c:type="GrlSource*"/>
          </instance-parameter>
          <parameter name="threshold" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="src/grl-source.c"
                 line="3183">the threshold to set</doc>
            <type name="guint" c:type="guint"/>
          </parameter>
        </parameters>
      </method>
      <method name="slow_keys"
              c:identifier="grl_source_slow_keys"
              version="0.2.0">
        <doc xml:space="preserve"
             filename="src/grl-source.c"
             line="2920">Similar to grl_source_supported_keys(), but these keys
are marked as slow because of the amount of traffic/processing needed
to fetch them.</doc>
        <source-position filename="src/grl-source.h" line="505"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="src/grl-source.c"
               line="2928">a #GList with the keys</doc>
          <type name="GLib.List" c:type="const GList*">
            <type name="KeyID"/>
          </type>
        </return-value>
        <parameters>
          <instance-parameter name="source" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="src/grl-source.c"
                 line="2922">a source</doc>
            <type name="Source" c:type="GrlSource*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="store" c:identifier="grl_source_store" version="0.3.0">
        <doc xml:space="preserve"
             filename="src/grl-source.c"
             line="4314">Store the @media into the @parent container

This method is asynchronous.</doc>
        <source-position filename="src/grl-source.h" line="600"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="source" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="src/grl-source.c"
                 line="4316">a source</doc>
            <type name="Source" c:type="GrlSource*"/>
          </instance-parameter>
          <parameter name="parent"
                     transfer-ownership="none"
                     nullable="1"
                     allow-none="1">
            <doc xml:space="preserve"
                 filename="src/grl-source.c"
                 line="4317">a parent to store the data transfer objects</doc>
            <type name="Media" c:type="GrlMedia*"/>
          </parameter>
          <parameter name="media" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="src/grl-source.c"
                 line="4318">a data transfer object</doc>
            <type name="Media" c:type="GrlMedia*"/>
          </parameter>
          <parameter name="flags" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="src/grl-source.c"
                 line="4319">flags to configure specific behaviour of the operation</doc>
            <type name="WriteFlags" c:type="GrlWriteFlags"/>
          </parameter>
          <parameter name="callback"
                     transfer-ownership="none"
                     scope="notified"
                     closure="4">
            <doc xml:space="preserve"
                 filename="src/grl-source.c"
                 line="4320">the user defined callback</doc>
            <type name="SourceStoreCb" c:type="GrlSourceStoreCb"/>
          </parameter>
          <parameter name="user_data"
                     transfer-ownership="none"
                     nullable="1"
                     allow-none="1">
            <doc xml:space="preserve"
                 filename="src/grl-source.c"
                 line="4321">the user data to pass in the callback</doc>
            <type name="gpointer" c:type="gpointer"/>
          </parameter>
        </parameters>
      </method>
      <method name="store_metadata"
              c:identifier="grl_source_store_metadata"
              version="0.2.0">
        <doc xml:space="preserve"
             filename="src/grl-source.c"
             line="4403">Get the values for @keys from @media and store it permanently. After
calling this method, future queries that return this media object
shall return this new values for the selected keys.

This function is asynchronous and uses the Glib's main loop.</doc>
        <source-position filename="src/grl-source.h" line="613"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="source" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="src/grl-source.c"
                 line="4405">a metadata source</doc>
            <type name="Source" c:type="GrlSource*"/>
          </instance-parameter>
          <parameter name="media" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="src/grl-source.c"
                 line="4406">the #GrlMedia object that we want to operate on.</doc>
            <type name="Media" c:type="GrlMedia*"/>
          </parameter>
          <parameter name="keys"
                     transfer-ownership="none"
                     nullable="1"
                     allow-none="1">
            <doc xml:space="preserve"
                 filename="src/grl-source.c"
                 line="4407">a list
of #GrlKeyID whose values we want to change.</doc>
            <type name="GLib.List" c:type="GList*">
              <type name="KeyID"/>
            </type>
          </parameter>
          <parameter name="flags" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="src/grl-source.c"
                 line="4409">Flags to configure specific behaviors of the operation.</doc>
            <type name="WriteFlags" c:type="GrlWriteFlags"/>
          </parameter>
          <parameter name="callback"
                     transfer-ownership="none"
                     scope="notified"
                     closure="4">
            <doc xml:space="preserve"
                 filename="src/grl-source.c"
                 line="4410">the callback to execute when the operation is finished.</doc>
            <type name="SourceStoreCb" c:type="GrlSourceStoreCb"/>
          </parameter>
          <parameter name="user_data"
                     transfer-ownership="none"
                     nullable="1"
                     allow-none="1">
            <doc xml:space="preserve"
                 filename="src/grl-source.c"
                 line="4411">user data set for the @callback</doc>
            <type name="gpointer" c:type="gpointer"/>
          </parameter>
        </parameters>
      </method>
      <method name="store_metadata_sync"
              c:identifier="grl_source_store_metadata_sync"
              version="0.2.0"
              throws="1">
        <doc xml:space="preserve"
             filename="src/grl-source.c"
             line="4437">Update @keys values from @media in the @source. After calling this method,
future queries that return this media object shall return this new value for
the selected key.

This function is synchronous.</doc>
        <source-position filename="src/grl-source.h" line="620"/>
        <return-value transfer-ownership="container">
          <doc xml:space="preserve"
               filename="src/grl-source.c"
               line="4452">
a #GList of keys that could not be updated, or @NULL</doc>
          <type name="GLib.List" c:type="GList*">
            <type name="KeyID"/>
          </type>
        </return-value>
        <parameters>
          <instance-parameter name="source" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="src/grl-source.c"
                 line="4439">a source</doc>
            <type name="Source" c:type="GrlSource*"/>
          </instance-parameter>
          <parameter name="media" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="src/grl-source.c"
                 line="4440">the #GrlMedia object that we want to operate on</doc>
            <type name="Media" c:type="GrlMedia*"/>
          </parameter>
          <parameter name="keys"
                     transfer-ownership="none"
                     nullable="1"
                     allow-none="1">
            <doc xml:space="preserve"
                 filename="src/grl-source.c"
                 line="4441">a list of
#GrlKeyID whose values we want to change</doc>
            <type name="GLib.List" c:type="GList*">
              <type name="KeyID"/>
            </type>
          </parameter>
          <parameter name="flags" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="src/grl-source.c"
                 line="4443">Flags to configure specific behaviors of the operation.</doc>
            <type name="WriteFlags" c:type="GrlWriteFlags"/>
          </parameter>
        </parameters>
      </method>
      <method name="store_sync"
              c:identifier="grl_source_store_sync"
              version="0.3.0"
              throws="1">
        <doc xml:space="preserve"
             filename="src/grl-source.c"
             line="4340">Store the @media into the @parent container.

This method is synchronous.</doc>
        <source-position filename="src/grl-source.h" line="607"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="source" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="src/grl-source.c"
                 line="4342">a source</doc>
            <type name="Source" c:type="GrlSource*"/>
          </instance-parameter>
          <parameter name="parent"
                     transfer-ownership="none"
                     nullable="1"
                     allow-none="1">
            <doc xml:space="preserve"
                 filename="src/grl-source.c"
                 line="4343">a #GrlMedia container to store the data transfer objects</doc>
            <type name="Media" c:type="GrlMedia*"/>
          </parameter>
          <parameter name="media" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="src/grl-source.c"
                 line="4344">a #GrlMedia data transfer object</doc>
            <type name="Media" c:type="GrlMedia*"/>
          </parameter>
          <parameter name="flags" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="src/grl-source.c"
                 line="4345">flags to configure specific behaviour of the operation</doc>
            <type name="WriteFlags" c:type="GrlWriteFlags"/>
          </parameter>
        </parameters>
      </method>
      <method name="supported_keys"
              c:identifier="grl_source_supported_keys"
              version="0.2.0">
        <doc xml:space="preserve"
             filename="src/grl-source.c"
             line="2897">Get a list of #GrlKeyID, which describe a metadata types that this
source can fetch and store.</doc>
        <source-position filename="src/grl-source.h" line="503"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="src/grl-source.c"
               line="2904">a #GList with the keys</doc>
          <type name="GLib.List" c:type="const GList*">
            <type name="KeyID"/>
          </type>
        </return-value>
        <parameters>
          <instance-parameter name="source" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="src/grl-source.c"
                 line="2899">a source</doc>
            <type name="Source" c:type="GrlSource*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="supported_operations"
              c:identifier="grl_source_supported_operations"
              version="0.2.0">
        <doc xml:space="preserve"
             filename="src/grl-source.c"
             line="3101">By default the derived objects of #GrlSource can only resolve.</doc>
        <source-position filename="src/grl-source.h" line="501"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="src/grl-source.c"
               line="3107">a bitwise mangle with the supported operations by
the source</doc>
          <type name="guint" c:type="GrlSupportedOps"/>
        </return-value>
        <parameters>
          <instance-parameter name="source" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="src/grl-source.c"
                 line="3103">a source</doc>
            <type name="Source" c:type="GrlSource*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="test_media_from_uri"
              c:identifier="grl_source_test_media_from_uri"
              version="0.2.0">
        <doc xml:space="preserve"
             filename="src/grl-source.c"
             line="3490">Tests whether @source can instantiate a #GrlMedia object representing
the media resource exposed at @uri.</doc>
        <source-position filename="src/grl-source.h" line="536"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="src/grl-source.c"
               line="3498">%TRUE if it can, %FALSE otherwise.

This method is synchronous.</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <instance-parameter name="source" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="src/grl-source.c"
                 line="3492">a source</doc>
            <type name="Source" c:type="GrlSource*"/>
          </instance-parameter>
          <parameter name="uri" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="src/grl-source.c"
                 line="3493">A URI that can be used to identify a media resource</doc>
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
        </parameters>
      </method>
      <method name="writable_keys"
              c:identifier="grl_source_writable_keys"
              version="0.2.0">
        <doc xml:space="preserve"
             filename="src/grl-source.c"
             line="2944">Similar to grl_source_supported_keys(), but these keys
are marked as writable, meaning the source allows the client
to provide new values for these keys that will be stored permanently.</doc>
        <source-position filename="src/grl-source.h" line="507"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="src/grl-source.c"
               line="2952">
a #GList with the keys</doc>
          <type name="GLib.List" c:type="const GList*">
            <type name="KeyID"/>
          </type>
        </return-value>
        <parameters>
          <instance-parameter name="source" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="src/grl-source.c"
                 line="2946">a source</doc>
            <type name="Source" c:type="GrlSource*"/>
          </instance-parameter>
        </parameters>
      </method>
      <property name="auto-split-threshold"
                version="0.2.0"
                writable="1"
                transfer-ownership="none"
                setter="set_auto_split_threshold"
                getter="get_auto_split_threshold"
                default-value="0">
        <doc xml:space="preserve"
             filename="src/grl-source.c"
             line="373">Transparently split queries with count requests
bigger than a certain threshold into smaller queries.</doc>
        <type name="guint" c:type="guint"/>
      </property>
      <property name="plugin"
                version="0.2.0"
                writable="1"
                construct="1"
                transfer-ownership="none"
                getter="get_plugin">
        <doc xml:space="preserve"
             filename="src/grl-source.c"
             line="339">Plugin the source belongs to</doc>
        <type name="Plugin"/>
      </property>
      <property name="rank"
                version="0.2.0"
                writable="1"
                construct="1"
                transfer-ownership="none"
                getter="get_rank"
                default-value="0">
        <doc xml:space="preserve"
             filename="src/grl-source.c"
             line="355">Source rank</doc>
        <type name="gint" c:type="gint"/>
      </property>
      <property name="source-desc"
                version="0.2.0"
                writable="1"
                construct="1"
                transfer-ownership="none">
        <doc xml:space="preserve"
             filename="src/grl-source.c"
             line="307">A description of the source</doc>
        <type name="utf8" c:type="gchar*"/>
      </property>
      <property name="source-icon"
                version="0.2.8"
                writable="1"
                construct="1"
                transfer-ownership="none">
        <doc xml:space="preserve"
             filename="src/grl-source.c"
             line="323">#GIcon representing the source</doc>
        <type name="Gio.Icon"/>
      </property>
      <property name="source-id"
                version="0.2.0"
                writable="1"
                construct="1"
                transfer-ownership="none">
        <doc xml:space="preserve"
             filename="src/grl-source.c"
             line="275">The identifier of the source.</doc>
        <type name="utf8" c:type="gchar*"/>
      </property>
      <property name="source-name"
                version="0.2.0"
                writable="1"
                construct="1"
                transfer-ownership="none">
        <doc xml:space="preserve"
             filename="src/grl-source.c"
             line="291">The name of the source.</doc>
        <type name="utf8" c:type="gchar*"/>
      </property>
      <property name="source-tags"
                version="0.2.10"
                writable="1"
                construct="1"
                transfer-ownership="none">
        <doc xml:space="preserve"
             filename="src/grl-source.c"
             line="407">A string array of tags relevant this source.

The tags are arbitrary, and applications should just pass over the tags
it does not understand. Applications would usually use this to either
group sources together, or hide certain sources: a radio application
would filter for %GRL_MEDIA_TYPE_AUDIO in GrlSource::supported-media as
well as "radio" being listed in the tags.

To avoid irrelevant content being listed in applications, sources
such as generic video sites should not be tagged as "cinema" or
"tv" as they contain a lot of content that's not either of those.

This is a list of commonly used values:

- "cinema", or "tv"
  The content served is from cinema or TV sources. For example, a
  source for movie trailers would select the former, a source for
  streaming live TV would select the latter.

- "radio"
  The content served is from streaming radios.

- "music"
  The content served is music, for example, music stores such as
  Jamendo or Magnatune.

- "country:country-code"
  The content is mostly relevant to users from a particular country,
  such as a national broadcaster. For example, BBC content would be
  tagged as "country:uk". Country codes should be an ISO-639-1 or
  ISO-639-2 code.

- "protocol:protocol-name"
  The content browsing or searching uses a particular protocol, such
  as DLNA/UPnP or DMAP/DAAP. This makes it easier to whitelist or
  blacklist sources rather than matching the implementation specific
  source ID. Examples are "protocol:dlna" and "protocol:dmap".

- "localhost", or "localuser"
  The content is served from the machine the application is running on,
  or by an application the user is running. Applications might choose to
  avoid showing the user's own data in their interfaces, or integrate it
  in the user's local collection.

  "net:local", or "net:internet"
  The source requires a connection to the local network, or a connection
  to the Internet. Sources with those tags will be automatically hidden
  from the application's reach when such networks aren't available, or
  we're not connected to a network.

  "net:plaintext"
  The source makes requests over plain text, non-encrypted, network channels,
  such as using HTTP to do searches or lookups. Applications would usually
  disable those by default, so that privacy is respected by default, and no
  data is leaked unintentionally.</doc>
        <array>
          <type name="utf8"/>
        </array>
      </property>
      <property name="supported-media"
                version="0.2.3"
                writable="1"
                construct="1"
                transfer-ownership="none"
                getter="get_supported_media"
                default-value="GRL_SUPPORTED_MEDIA_AUDIO | GRL_SUPPORTED_MEDIA_VIDEO | GRL_SUPPORTED_MEDIA_IMAGE">
        <doc xml:space="preserve"
             filename="src/grl-source.c"
             line="389">List of supported media types by this source.</doc>
        <type name="SupportedMedia"/>
      </property>
      <field name="parent">
        <type name="GObject.Object" c:type="GObject"/>
      </field>
      <field name="priv" readable="0" private="1">
        <type name="SourcePrivate" c:type="GrlSourcePrivate*"/>
      </field>
      <field name="_grl_reserved" readable="0" private="1">
        <array zero-terminated="0" fixed-size="16">
          <type name="gpointer" c:type="gpointer"/>
        </array>
      </field>
      <glib:signal name="content-changed"
                   when="first"
                   action="1"
                   version="0.2.0">
        <doc xml:space="preserve"
             filename="src/grl-source.c"
             line="478">Signals that the content in the source has changed. @changed_medias is the
list of elements that have changed. Usually these medias are of type
#GrlMedia container, meaning that the content of that container has changed.

If @location_unknown is @TRUE it means the source cannot establish where the
change happened: could be either in the container, in any child, or in any other
descendant of the container in the hierarchy.

Both @change_type and @location_unknown are applied to all elements in the
list.

For the cases where the source can only signal that a change happened, but
not where, it would use a list with the the root container (@NULL id) and set
location_unknown as @TRUE.</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <parameter name="changed_medias" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="src/grl-source.c"
                 line="481">a #GPtrArray with the medias
that changed or a common ancestor of them of type #GrlMedia.</doc>
            <array name="GLib.PtrArray">
              <type name="Media"/>
            </array>
          </parameter>
          <parameter name="change_type" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="src/grl-source.c"
                 line="483">the kind of change that ocurred</doc>
            <type name="SourceChangeType"/>
          </parameter>
          <parameter name="location_unknown" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="src/grl-source.c"
                 line="484">@TRUE if the change happened in @media itself or in one
of its direct children (when @media is a #GrlMedia). @FALSE otherwise</doc>
            <type name="gboolean" c:type="gboolean"/>
          </parameter>
        </parameters>
      </glib:signal>
    </class>
    <record name="SourceBrowseSpec" c:type="GrlSourceBrowseSpec">
      <doc xml:space="preserve"
           filename="src/grl-source.h"
           line="268">Data transport structure used internally by the plugins which support
browse vmethod.</doc>
      <source-position filename="src/grl-source.h" line="292"/>
      <field name="source" writable="1">
        <doc xml:space="preserve"
             filename="src/grl-source.h"
             line="270">a source</doc>
        <type name="Source" c:type="GrlSource*"/>
      </field>
      <field name="operation_id" writable="1">
        <doc xml:space="preserve"
             filename="src/grl-source.h"
             line="271">operation identifier</doc>
        <type name="guint" c:type="guint"/>
      </field>
      <field name="container" writable="1">
        <doc xml:space="preserve"
             filename="src/grl-source.h"
             line="272">a container of data transfer objects</doc>
        <type name="Media" c:type="GrlMedia*"/>
      </field>
      <field name="keys" writable="1">
        <doc xml:space="preserve"
             filename="src/grl-source.h"
             line="273">the #GList of #GrlKeyID&lt;!-- --&gt;s to request</doc>
        <type name="GLib.List" c:type="GList*">
          <type name="gpointer" c:type="gpointer"/>
        </type>
      </field>
      <field name="options" writable="1">
        <doc xml:space="preserve"
             filename="src/grl-source.h"
             line="274">options wanted for that operation</doc>
        <type name="OperationOptions" c:type="GrlOperationOptions*"/>
      </field>
      <field name="callback" writable="1">
        <doc xml:space="preserve"
             filename="src/grl-source.h"
             line="275">the user defined callback</doc>
        <type name="SourceResultCb" c:type="GrlSourceResultCb"/>
      </field>
      <field name="user_data" writable="1">
        <doc xml:space="preserve"
             filename="src/grl-source.h"
             line="276">the user data to pass in the callback</doc>
        <type name="gpointer" c:type="gpointer"/>
      </field>
      <field name="_grl_reserved" readable="0" private="1">
        <array zero-terminated="0" fixed-size="16">
          <type name="gpointer" c:type="gpointer"/>
        </array>
      </field>
    </record>
    <enumeration name="SourceChangeType"
                 glib:type-name="GrlSourceChangeType"
                 glib:get-type="grl_source_change_type_get_type"
                 c:type="GrlSourceChangeType">
      <doc xml:space="preserve"
           filename="src/grl-source.h"
           line="129">Specifies which kind of change has happened in the plugin</doc>
      <member name="changed"
              value="0"
              c:identifier="GRL_CONTENT_CHANGED"
              glib:nick="changed"
              glib:name="GRL_CONTENT_CHANGED">
        <doc xml:space="preserve"
             filename="src/grl-source.h"
             line="131">content has changed. It is used when any property of
#GrlMedia has changed, or in case of containers, if several children have
been added and removed.</doc>
      </member>
      <member name="added"
              value="1"
              c:identifier="GRL_CONTENT_ADDED"
              glib:nick="added"
              glib:name="GRL_CONTENT_ADDED">
        <doc xml:space="preserve"
             filename="src/grl-source.h"
             line="134">new content has been added.</doc>
      </member>
      <member name="removed"
              value="2"
              c:identifier="GRL_CONTENT_REMOVED"
              glib:nick="removed"
              glib:name="GRL_CONTENT_REMOVED">
        <doc xml:space="preserve"
             filename="src/grl-source.h"
             line="135">content has been removed</doc>
      </member>
    </enumeration>
    <record name="SourceClass"
            c:type="GrlSourceClass"
            glib:is-gtype-struct-for="Source">
      <doc xml:space="preserve"
           filename="src/grl-source.h"
           line="420">Grilo Source class. Override the vmethods to implement the
element functionality.</doc>
      <source-position filename="src/grl-source.h" line="495"/>
      <field name="parent_class">
        <doc xml:space="preserve"
             filename="src/grl-source.h"
             line="422">the parent class structure</doc>
        <type name="GObject.ObjectClass" c:type="GObjectClass"/>
      </field>
      <field name="supported_operations">
        <doc xml:space="preserve"
             filename="src/grl-source.h"
             line="423">the operations that can be called</doc>
        <callback name="supported_operations">
          <source-position filename="src/grl-source.h" line="452"/>
          <return-value transfer-ownership="none">
            <type name="SupportedOps" c:type="GrlSupportedOps"/>
          </return-value>
          <parameters>
            <parameter name="source" transfer-ownership="none">
              <type name="Source" c:type="GrlSource*"/>
            </parameter>
          </parameters>
        </callback>
      </field>
      <field name="supported_keys">
        <doc xml:space="preserve"
             filename="src/grl-source.h"
             line="424">the list of keys that can be handled</doc>
        <callback name="supported_keys">
          <source-position filename="src/grl-source.h" line="454"/>
          <return-value transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="src/grl-source.c"
                 line="2904">a #GList with the keys</doc>
            <type name="GLib.List" c:type="const GList*">
              <type name="KeyID"/>
            </type>
          </return-value>
          <parameters>
            <parameter name="source" transfer-ownership="none">
              <doc xml:space="preserve"
                   filename="src/grl-source.c"
                   line="2899">a source</doc>
              <type name="Source" c:type="GrlSource*"/>
            </parameter>
          </parameters>
        </callback>
      </field>
      <field name="slow_keys">
        <doc xml:space="preserve"
             filename="src/grl-source.h"
             line="425">the list of slow keys that can be fetched</doc>
        <callback name="slow_keys">
          <source-position filename="src/grl-source.h" line="456"/>
          <return-value transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="src/grl-source.c"
                 line="2928">a #GList with the keys</doc>
            <type name="GLib.List" c:type="const GList*">
              <type name="KeyID"/>
            </type>
          </return-value>
          <parameters>
            <parameter name="source" transfer-ownership="none">
              <doc xml:space="preserve"
                   filename="src/grl-source.c"
                   line="2922">a source</doc>
              <type name="Source" c:type="GrlSource*"/>
            </parameter>
          </parameters>
        </callback>
      </field>
      <field name="writable_keys">
        <doc xml:space="preserve"
             filename="src/grl-source.h"
             line="426">the list of keys which value can be written</doc>
        <callback name="writable_keys">
          <source-position filename="src/grl-source.h" line="458"/>
          <return-value transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="src/grl-source.c"
                 line="2952">
a #GList with the keys</doc>
            <type name="GLib.List" c:type="const GList*">
              <type name="KeyID"/>
            </type>
          </return-value>
          <parameters>
            <parameter name="source" transfer-ownership="none">
              <doc xml:space="preserve"
                   filename="src/grl-source.c"
                   line="2946">a source</doc>
              <type name="Source" c:type="GrlSource*"/>
            </parameter>
          </parameters>
        </callback>
      </field>
      <field name="get_caps">
        <doc xml:space="preserve"
             filename="src/grl-source.h"
             line="427">the capabilities that @source supports for @operation</doc>
        <callback name="get_caps">
          <source-position filename="src/grl-source.h" line="460"/>
          <return-value transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="src/grl-source.c"
                 line="4658">The capabilities</doc>
            <type name="Caps" c:type="GrlCaps*"/>
          </return-value>
          <parameters>
            <parameter name="source" transfer-ownership="none">
              <doc xml:space="preserve"
                   filename="src/grl-source.c"
                   line="4652">a source</doc>
              <type name="Source" c:type="GrlSource*"/>
            </parameter>
            <parameter name="operation" transfer-ownership="none">
              <doc xml:space="preserve"
                   filename="src/grl-source.c"
                   line="4653">a supported operation. Even though the type allows to specify
several operations, only one should be provided here.</doc>
              <type name="SupportedOps" c:type="GrlSupportedOps"/>
            </parameter>
          </parameters>
        </callback>
      </field>
      <field name="resolve">
        <doc xml:space="preserve"
             filename="src/grl-source.h"
             line="428">resolve the metadata of a given transfer object</doc>
        <callback name="resolve">
          <source-position filename="src/grl-source.h" line="462"/>
          <return-value transfer-ownership="none">
            <type name="none" c:type="void"/>
          </return-value>
          <parameters>
            <parameter name="source" transfer-ownership="none">
              <type name="Source" c:type="GrlSource*"/>
            </parameter>
            <parameter name="ms" transfer-ownership="none">
              <type name="SourceResolveSpec" c:type="GrlSourceResolveSpec*"/>
            </parameter>
          </parameters>
        </callback>
      </field>
      <field name="may_resolve">
        <doc xml:space="preserve"
             filename="src/grl-source.h"
             line="429">return FALSE if it can be known without blocking that @key_id</doc>
        <callback name="may_resolve">
          <source-position filename="src/grl-source.h" line="464"/>
          <return-value transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="src/grl-source.c"
                 line="3434">@TRUE if there's a possibility that @source resolves @key_id for
@media, @FALSE otherwise.</doc>
            <type name="gboolean" c:type="gboolean"/>
          </return-value>
          <parameters>
            <parameter name="source" transfer-ownership="none">
              <doc xml:space="preserve"
                   filename="src/grl-source.c"
                   line="3419">a source</doc>
              <type name="Source" c:type="GrlSource*"/>
            </parameter>
            <parameter name="media" transfer-ownership="none">
              <doc xml:space="preserve"
                   filename="src/grl-source.c"
                   line="3420">a media on which we want more metadata</doc>
              <type name="Media" c:type="GrlMedia*"/>
            </parameter>
            <parameter name="key_id" transfer-ownership="none">
              <doc xml:space="preserve"
                   filename="src/grl-source.c"
                   line="3421">the key corresponding to a metadata we might want</doc>
              <type name="KeyID" c:type="GrlKeyID"/>
            </parameter>
            <parameter name="missing_keys" transfer-ownership="none">
              <doc xml:space="preserve"
                   filename="src/grl-source.c"
                   line="3422">an optional originally empty list</doc>
              <type name="GLib.List" c:type="GList**">
                <type name="KeyID"/>
              </type>
            </parameter>
          </parameters>
        </callback>
      </field>
      <field name="test_media_from_uri">
        <doc xml:space="preserve"
             filename="src/grl-source.h"
             line="430">tests if this source can create #GrlMedia
instances from a given URI.</doc>
        <callback name="test_media_from_uri">
          <source-position filename="src/grl-source.h" line="467"/>
          <return-value transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="src/grl-source.c"
                 line="3498">%TRUE if it can, %FALSE otherwise.

This method is synchronous.</doc>
            <type name="gboolean" c:type="gboolean"/>
          </return-value>
          <parameters>
            <parameter name="source" transfer-ownership="none">
              <doc xml:space="preserve"
                   filename="src/grl-source.c"
                   line="3492">a source</doc>
              <type name="Source" c:type="GrlSource*"/>
            </parameter>
            <parameter name="uri" transfer-ownership="none">
              <doc xml:space="preserve"
                   filename="src/grl-source.c"
                   line="3493">A URI that can be used to identify a media resource</doc>
              <type name="utf8" c:type="const gchar*"/>
            </parameter>
          </parameters>
        </callback>
      </field>
      <field name="media_from_uri">
        <doc xml:space="preserve"
             filename="src/grl-source.h"
             line="432">Creates a #GrlMedia instance representing the media
exposed by a certain URI.</doc>
        <callback name="media_from_uri">
          <source-position filename="src/grl-source.h" line="470"/>
          <return-value transfer-ownership="none">
            <type name="none" c:type="void"/>
          </return-value>
          <parameters>
            <parameter name="source" transfer-ownership="none">
              <type name="Source" c:type="GrlSource*"/>
            </parameter>
            <parameter name="mfus" transfer-ownership="none">
              <type name="SourceMediaFromUriSpec"
                    c:type="GrlSourceMediaFromUriSpec*"/>
            </parameter>
          </parameters>
        </callback>
      </field>
      <field name="browse">
        <doc xml:space="preserve"
             filename="src/grl-source.h"
             line="434">browse through a list of media</doc>
        <callback name="browse">
          <source-position filename="src/grl-source.h" line="473"/>
          <return-value transfer-ownership="none">
            <type name="none" c:type="void"/>
          </return-value>
          <parameters>
            <parameter name="source" transfer-ownership="none">
              <type name="Source" c:type="GrlSource*"/>
            </parameter>
            <parameter name="bs" transfer-ownership="none">
              <type name="SourceBrowseSpec" c:type="GrlSourceBrowseSpec*"/>
            </parameter>
          </parameters>
        </callback>
      </field>
      <field name="search">
        <doc xml:space="preserve"
             filename="src/grl-source.h"
             line="435">search for media</doc>
        <callback name="search">
          <source-position filename="src/grl-source.h" line="475"/>
          <return-value transfer-ownership="none">
            <type name="none" c:type="void"/>
          </return-value>
          <parameters>
            <parameter name="source" transfer-ownership="none">
              <type name="Source" c:type="GrlSource*"/>
            </parameter>
            <parameter name="ss" transfer-ownership="none">
              <type name="SourceSearchSpec" c:type="GrlSourceSearchSpec*"/>
            </parameter>
          </parameters>
        </callback>
      </field>
      <field name="query">
        <doc xml:space="preserve"
             filename="src/grl-source.h"
             line="436">query for a specific media</doc>
        <callback name="query">
          <source-position filename="src/grl-source.h" line="477"/>
          <return-value transfer-ownership="none">
            <type name="none" c:type="void"/>
          </return-value>
          <parameters>
            <parameter name="source" transfer-ownership="none">
              <type name="Source" c:type="GrlSource*"/>
            </parameter>
            <parameter name="qs" transfer-ownership="none">
              <type name="SourceQuerySpec" c:type="GrlSourceQuerySpec*"/>
            </parameter>
          </parameters>
        </callback>
      </field>
      <field name="remove">
        <doc xml:space="preserve"
             filename="src/grl-source.h"
             line="437">remove a media from a container</doc>
        <callback name="remove">
          <source-position filename="src/grl-source.h" line="479"/>
          <return-value transfer-ownership="none">
            <type name="none" c:type="void"/>
          </return-value>
          <parameters>
            <parameter name="source" transfer-ownership="none">
              <type name="Source" c:type="GrlSource*"/>
            </parameter>
            <parameter name="rs" transfer-ownership="none">
              <type name="SourceRemoveSpec" c:type="GrlSourceRemoveSpec*"/>
            </parameter>
          </parameters>
        </callback>
      </field>
      <field name="store">
        <doc xml:space="preserve"
             filename="src/grl-source.h"
             line="438">store a media in a container</doc>
        <callback name="store">
          <source-position filename="src/grl-source.h" line="481"/>
          <return-value transfer-ownership="none">
            <type name="none" c:type="void"/>
          </return-value>
          <parameters>
            <parameter name="source" transfer-ownership="none">
              <type name="Source" c:type="GrlSource*"/>
            </parameter>
            <parameter name="ss" transfer-ownership="none">
              <type name="SourceStoreSpec" c:type="GrlSourceStoreSpec*"/>
            </parameter>
          </parameters>
        </callback>
      </field>
      <field name="store_metadata">
        <doc xml:space="preserve"
             filename="src/grl-source.h"
             line="439">update metadata values for a given object in a
permanent fashion</doc>
        <callback name="store_metadata">
          <source-position filename="src/grl-source.h" line="483"/>
          <return-value transfer-ownership="none">
            <type name="none" c:type="void"/>
          </return-value>
          <parameters>
            <parameter name="source" transfer-ownership="none">
              <type name="Source" c:type="GrlSource*"/>
            </parameter>
            <parameter name="sms" transfer-ownership="none">
              <type name="SourceStoreMetadataSpec"
                    c:type="GrlSourceStoreMetadataSpec*"/>
            </parameter>
          </parameters>
        </callback>
      </field>
      <field name="cancel">
        <doc xml:space="preserve"
             filename="src/grl-source.h"
             line="441">cancel the current operation</doc>
        <callback name="cancel">
          <source-position filename="src/grl-source.h" line="485"/>
          <return-value transfer-ownership="none">
            <type name="none" c:type="void"/>
          </return-value>
          <parameters>
            <parameter name="source" transfer-ownership="none">
              <type name="Source" c:type="GrlSource*"/>
            </parameter>
            <parameter name="operation_id" transfer-ownership="none">
              <type name="guint" c:type="guint"/>
            </parameter>
          </parameters>
        </callback>
      </field>
      <field name="notify_change_start">
        <doc xml:space="preserve"
             filename="src/grl-source.h"
             line="442">start emitting signals about changes in content</doc>
        <callback name="notify_change_start" throws="1">
          <source-position filename="src/grl-source.h" line="487"/>
          <return-value transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="src/grl-source.c"
                 line="4501">@TRUE if initialization has succeed.</doc>
            <type name="gboolean" c:type="gboolean"/>
          </return-value>
          <parameters>
            <parameter name="source" transfer-ownership="none">
              <doc xml:space="preserve"
                   filename="src/grl-source.c"
                   line="4494">a source</doc>
              <type name="Source" c:type="GrlSource*"/>
            </parameter>
          </parameters>
        </callback>
      </field>
      <field name="notify_change_stop">
        <doc xml:space="preserve"
             filename="src/grl-source.h"
             line="443">stop emitting signals about changes in content</doc>
        <callback name="notify_change_stop" throws="1">
          <source-position filename="src/grl-source.h" line="490"/>
          <return-value transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="src/grl-source.c"
                 line="4527">@TRUE if stop has succeed.</doc>
            <type name="gboolean" c:type="gboolean"/>
          </return-value>
          <parameters>
            <parameter name="source" transfer-ownership="none">
              <doc xml:space="preserve"
                   filename="src/grl-source.c"
                   line="4520">a source</doc>
              <type name="Source" c:type="GrlSource*"/>
            </parameter>
          </parameters>
        </callback>
      </field>
      <field name="_grl_reserved" readable="0" private="1">
        <array zero-terminated="0" fixed-size="16">
          <type name="gpointer" c:type="gpointer"/>
        </array>
      </field>
    </record>
    <record name="SourceMediaFromUriSpec" c:type="GrlSourceMediaFromUriSpec">
      <doc xml:space="preserve"
           filename="src/grl-source.h"
           line="242">Data transport structure used internally by the plugins which support
media_from_uri vmethod.</doc>
      <source-position filename="src/grl-source.h" line="266"/>
      <field name="source" writable="1">
        <doc xml:space="preserve"
             filename="src/grl-source.h"
             line="244">a source</doc>
        <type name="Source" c:type="GrlSource*"/>
      </field>
      <field name="operation_id" writable="1">
        <doc xml:space="preserve"
             filename="src/grl-source.h"
             line="245">operation identifier</doc>
        <type name="guint" c:type="guint"/>
      </field>
      <field name="uri" writable="1">
        <doc xml:space="preserve"
             filename="src/grl-source.h"
             line="246">A URI that can be used to identify a media resource</doc>
        <type name="utf8" c:type="gchar*"/>
      </field>
      <field name="keys" writable="1">
        <doc xml:space="preserve"
             filename="src/grl-source.h"
             line="247">Metadata keys to resolve</doc>
        <type name="GLib.List" c:type="GList*">
          <type name="gpointer" c:type="gpointer"/>
        </type>
      </field>
      <field name="options" writable="1">
        <doc xml:space="preserve"
             filename="src/grl-source.h"
             line="248">options wanted for that operation</doc>
        <type name="OperationOptions" c:type="GrlOperationOptions*"/>
      </field>
      <field name="callback" writable="1">
        <doc xml:space="preserve"
             filename="src/grl-source.h"
             line="249">the user defined callback</doc>
        <type name="SourceResolveCb" c:type="GrlSourceResolveCb"/>
      </field>
      <field name="user_data" writable="1">
        <doc xml:space="preserve"
             filename="src/grl-source.h"
             line="250">the user data to pass in the callback</doc>
        <type name="gpointer" c:type="gpointer"/>
      </field>
      <field name="_grl_reserved" readable="0" private="1">
        <array zero-terminated="0" fixed-size="16">
          <type name="gpointer" c:type="gpointer"/>
        </array>
      </field>
    </record>
    <record name="SourcePrivate"
            c:type="GrlSourcePrivate"
            disguised="1"
            opaque="1">
      <source-position filename="src/grl-source.h" line="69"/>
    </record>
    <record name="SourceQuerySpec" c:type="GrlSourceQuerySpec">
      <doc xml:space="preserve"
           filename="src/grl-source.h"
           line="320">Data transport structure used internally by the plugins which support
query vmethod.</doc>
      <source-position filename="src/grl-source.h" line="344"/>
      <field name="source" writable="1">
        <doc xml:space="preserve"
             filename="src/grl-source.h"
             line="322">a source</doc>
        <type name="Source" c:type="GrlSource*"/>
      </field>
      <field name="operation_id" writable="1">
        <doc xml:space="preserve"
             filename="src/grl-source.h"
             line="323">operation identifier</doc>
        <type name="guint" c:type="guint"/>
      </field>
      <field name="query" writable="1">
        <doc xml:space="preserve"
             filename="src/grl-source.h"
             line="324">the query to process</doc>
        <type name="utf8" c:type="gchar*"/>
      </field>
      <field name="keys" writable="1">
        <doc xml:space="preserve"
             filename="src/grl-source.h"
             line="325">the #GList of #GrlKeyID&lt;!-- --&gt;s to request</doc>
        <type name="GLib.List" c:type="GList*">
          <type name="gpointer" c:type="gpointer"/>
        </type>
      </field>
      <field name="options" writable="1">
        <doc xml:space="preserve"
             filename="src/grl-source.h"
             line="326">options wanted for that operation</doc>
        <type name="OperationOptions" c:type="GrlOperationOptions*"/>
      </field>
      <field name="callback" writable="1">
        <doc xml:space="preserve"
             filename="src/grl-source.h"
             line="327">the user defined callback</doc>
        <type name="SourceResultCb" c:type="GrlSourceResultCb"/>
      </field>
      <field name="user_data" writable="1">
        <doc xml:space="preserve"
             filename="src/grl-source.h"
             line="328">the user data to pass in the callback</doc>
        <type name="gpointer" c:type="gpointer"/>
      </field>
      <field name="_grl_reserved" readable="0" private="1">
        <array zero-terminated="0" fixed-size="16">
          <type name="gpointer" c:type="gpointer"/>
        </array>
      </field>
    </record>
    <callback name="SourceRemoveCb" c:type="GrlSourceRemoveCb">
      <doc xml:space="preserve"
           filename="src/grl-source.h"
           line="185">Prototype for the callback passed to grl_source_remove()</doc>
      <source-position filename="src/grl-source.h" line="194"/>
      <return-value transfer-ownership="none">
        <type name="none" c:type="void"/>
      </return-value>
      <parameters>
        <parameter name="source" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="src/grl-source.h"
               line="187">a source</doc>
          <type name="Source" c:type="GrlSource*"/>
        </parameter>
        <parameter name="media" transfer-ownership="full">
          <doc xml:space="preserve"
               filename="src/grl-source.h"
               line="188">a data transfer object</doc>
          <type name="Media" c:type="GrlMedia*"/>
        </parameter>
        <parameter name="user_data"
                   transfer-ownership="none"
                   nullable="1"
                   allow-none="1"
                   closure="2">
          <doc xml:space="preserve"
               filename="src/grl-source.h"
               line="189">user data passed to grl_source_remove()</doc>
          <type name="gpointer" c:type="gpointer"/>
        </parameter>
        <parameter name="error"
                   transfer-ownership="none"
                   nullable="1"
                   allow-none="1">
          <doc xml:space="preserve"
               filename="src/grl-source.h"
               line="190">possible #GError generated at processing</doc>
          <type name="GLib.Error" c:type="const GError*"/>
        </parameter>
      </parameters>
    </callback>
    <record name="SourceRemoveSpec" c:type="GrlSourceRemoveSpec">
      <doc xml:space="preserve"
           filename="src/grl-source.h"
           line="346">Data transport structure used internally by the plugins which support
store vmethod.</doc>
      <source-position filename="src/grl-source.h" line="366"/>
      <field name="source" writable="1">
        <doc xml:space="preserve"
             filename="src/grl-source.h"
             line="348">a source</doc>
        <type name="Source" c:type="GrlSource*"/>
      </field>
      <field name="media_id" writable="1">
        <doc xml:space="preserve"
             filename="src/grl-source.h"
             line="349">media identifier to remove</doc>
        <type name="utf8" c:type="gchar*"/>
      </field>
      <field name="media" writable="1">
        <doc xml:space="preserve"
             filename="src/grl-source.h"
             line="350">a data transfer object</doc>
        <type name="Media" c:type="GrlMedia*"/>
      </field>
      <field name="callback" writable="1">
        <doc xml:space="preserve"
             filename="src/grl-source.h"
             line="351">the user defined callback</doc>
        <type name="SourceRemoveCb" c:type="GrlSourceRemoveCb"/>
      </field>
      <field name="user_data" writable="1">
        <doc xml:space="preserve"
             filename="src/grl-source.h"
             line="352">the user data to pass in the callback</doc>
        <type name="gpointer" c:type="gpointer"/>
      </field>
      <field name="_grl_reserved" readable="0" private="1">
        <array zero-terminated="0" fixed-size="16">
          <type name="gpointer" c:type="gpointer"/>
        </array>
      </field>
    </record>
    <callback name="SourceResolveCb" c:type="GrlSourceResolveCb">
      <doc xml:space="preserve"
           filename="src/grl-source.h"
           line="145">Prototype for the callback passed to grl_source_resolve(). If the URI did
not resolve to a valid media record, @media will be %NULL. If there was an
error during resolution, @error will be set.

If @media is non-%NULL, ownership of it is transferred to the callback, and
it must be freed afterwards using g_object_unref().</doc>
      <source-position filename="src/grl-source.h" line="160"/>
      <return-value transfer-ownership="none">
        <type name="none" c:type="void"/>
      </return-value>
      <parameters>
        <parameter name="source" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="src/grl-source.h"
               line="147">a source</doc>
          <type name="Source" c:type="GrlSource*"/>
        </parameter>
        <parameter name="operation_id" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="src/grl-source.h"
               line="148">operation identifier</doc>
          <type name="guint" c:type="guint"/>
        </parameter>
        <parameter name="media" transfer-ownership="full">
          <doc xml:space="preserve"
               filename="src/grl-source.h"
               line="149">a data transfer object</doc>
          <type name="Media" c:type="GrlMedia*"/>
        </parameter>
        <parameter name="user_data"
                   transfer-ownership="none"
                   nullable="1"
                   allow-none="1"
                   closure="3">
          <doc xml:space="preserve"
               filename="src/grl-source.h"
               line="150">user data passed to grl_source_resolve()</doc>
          <type name="gpointer" c:type="gpointer"/>
        </parameter>
        <parameter name="error"
                   transfer-ownership="none"
                   nullable="1"
                   allow-none="1">
          <doc xml:space="preserve"
               filename="src/grl-source.h"
               line="151">possible #GError generated at processing</doc>
          <type name="GLib.Error" c:type="const GError*"/>
        </parameter>
      </parameters>
    </callback>
    <record name="SourceResolveSpec" c:type="GrlSourceResolveSpec">
      <doc xml:space="preserve"
           filename="src/grl-source.h"
           line="216">Data transport structure used internally by the plugins which support
resolve vmethod.</doc>
      <source-position filename="src/grl-source.h" line="240"/>
      <field name="source" writable="1">
        <doc xml:space="preserve"
             filename="src/grl-source.h"
             line="218">a source</doc>
        <type name="Source" c:type="GrlSource*"/>
      </field>
      <field name="operation_id" writable="1">
        <doc xml:space="preserve"
             filename="src/grl-source.h"
             line="219">operation identifier</doc>
        <type name="guint" c:type="guint"/>
      </field>
      <field name="media" writable="1">
        <doc xml:space="preserve"
             filename="src/grl-source.h"
             line="220">a data transfer object</doc>
        <type name="Media" c:type="GrlMedia*"/>
      </field>
      <field name="keys" writable="1">
        <doc xml:space="preserve"
             filename="src/grl-source.h"
             line="221">the #GList of #GrlKeyID&lt;!-- --&gt;s to request</doc>
        <type name="GLib.List" c:type="GList*">
          <type name="gpointer" c:type="gpointer"/>
        </type>
      </field>
      <field name="options" writable="1">
        <doc xml:space="preserve"
             filename="src/grl-source.h"
             line="222">options wanted for that operation</doc>
        <type name="OperationOptions" c:type="GrlOperationOptions*"/>
      </field>
      <field name="callback" writable="1">
        <doc xml:space="preserve"
             filename="src/grl-source.h"
             line="223">the user defined callback</doc>
        <type name="SourceResolveCb" c:type="GrlSourceResolveCb"/>
      </field>
      <field name="user_data" writable="1">
        <doc xml:space="preserve"
             filename="src/grl-source.h"
             line="224">the user data to pass in the callback</doc>
        <type name="gpointer" c:type="gpointer"/>
      </field>
      <field name="_grl_reserved" readable="0" private="1">
        <array zero-terminated="0" fixed-size="16">
          <type name="gpointer" c:type="gpointer"/>
        </array>
      </field>
    </record>
    <callback name="SourceResultCb" c:type="GrlSourceResultCb">
      <doc xml:space="preserve"
           filename="src/grl-source.h"
           line="166">Prototype for the callback passed to the media sources' methods</doc>
      <source-position filename="src/grl-source.h" line="178"/>
      <return-value transfer-ownership="none">
        <type name="none" c:type="void"/>
      </return-value>
      <parameters>
        <parameter name="source" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="src/grl-source.h"
               line="168">a source</doc>
          <type name="Source" c:type="GrlSource*"/>
        </parameter>
        <parameter name="operation_id" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="src/grl-source.h"
               line="169">operation identifier</doc>
          <type name="guint" c:type="guint"/>
        </parameter>
        <parameter name="media"
                   transfer-ownership="full"
                   nullable="1"
                   allow-none="1">
          <doc xml:space="preserve"
               filename="src/grl-source.h"
               line="170">a data transfer object</doc>
          <type name="Media" c:type="GrlMedia*"/>
        </parameter>
        <parameter name="remaining" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="src/grl-source.h"
               line="171">the number of remaining #GrlMedia to process, or
GRL_SOURCE_REMAINING_UNKNOWN if it is unknown</doc>
          <type name="guint" c:type="guint"/>
        </parameter>
        <parameter name="user_data"
                   transfer-ownership="none"
                   nullable="1"
                   allow-none="1"
                   closure="4">
          <doc xml:space="preserve"
               filename="src/grl-source.h"
               line="173">user data passed to the used method</doc>
          <type name="gpointer" c:type="gpointer"/>
        </parameter>
        <parameter name="error"
                   transfer-ownership="none"
                   nullable="1"
                   allow-none="1">
          <doc xml:space="preserve"
               filename="src/grl-source.h"
               line="174">possible #GError generated at processing</doc>
          <type name="GLib.Error" c:type="const GError*"/>
        </parameter>
      </parameters>
    </callback>
    <record name="SourceSearchSpec" c:type="GrlSourceSearchSpec">
      <doc xml:space="preserve"
           filename="src/grl-source.h"
           line="294">Data transport structure used internally by the plugins which support
search vmethod.</doc>
      <source-position filename="src/grl-source.h" line="318"/>
      <field name="source" writable="1">
        <doc xml:space="preserve"
             filename="src/grl-source.h"
             line="296">a source</doc>
        <type name="Source" c:type="GrlSource*"/>
      </field>
      <field name="operation_id" writable="1">
        <doc xml:space="preserve"
             filename="src/grl-source.h"
             line="297">operation identifier</doc>
        <type name="guint" c:type="guint"/>
      </field>
      <field name="text" writable="1">
        <doc xml:space="preserve"
             filename="src/grl-source.h"
             line="298">the text to search</doc>
        <type name="utf8" c:type="gchar*"/>
      </field>
      <field name="keys" writable="1">
        <doc xml:space="preserve"
             filename="src/grl-source.h"
             line="299">the #GList of #GrlKeyID&lt;!-- --&gt;s to request</doc>
        <type name="GLib.List" c:type="GList*">
          <type name="gpointer" c:type="gpointer"/>
        </type>
      </field>
      <field name="options" writable="1">
        <doc xml:space="preserve"
             filename="src/grl-source.h"
             line="300">options wanted for that operation</doc>
        <type name="OperationOptions" c:type="GrlOperationOptions*"/>
      </field>
      <field name="callback" writable="1">
        <doc xml:space="preserve"
             filename="src/grl-source.h"
             line="301">the user defined callback</doc>
        <type name="SourceResultCb" c:type="GrlSourceResultCb"/>
      </field>
      <field name="user_data" writable="1">
        <doc xml:space="preserve"
             filename="src/grl-source.h"
             line="302">the user data to pass in the callback</doc>
        <type name="gpointer" c:type="gpointer"/>
      </field>
      <field name="_grl_reserved" readable="0" private="1">
        <array zero-terminated="0" fixed-size="16">
          <type name="gpointer" c:type="gpointer"/>
        </array>
      </field>
    </record>
    <callback name="SourceStoreCb" c:type="GrlSourceStoreCb">
      <doc xml:space="preserve"
           filename="src/grl-source.h"
           line="199">Prototype for the callback passed to grl_source_store_foo functions</doc>
      <source-position filename="src/grl-source.h" line="210"/>
      <return-value transfer-ownership="none">
        <type name="none" c:type="void"/>
      </return-value>
      <parameters>
        <parameter name="source" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="src/grl-source.h"
               line="201">a source</doc>
          <type name="Source" c:type="GrlSource*"/>
        </parameter>
        <parameter name="media" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="src/grl-source.h"
               line="202">a #GrlMedia transfer object</doc>
          <type name="Media" c:type="GrlMedia*"/>
        </parameter>
        <parameter name="failed_keys" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="src/grl-source.h"
               line="203">#GList of
keys that could not be updated, if any</doc>
          <type name="GLib.List" c:type="GList*">
            <type name="KeyID"/>
          </type>
        </parameter>
        <parameter name="user_data"
                   transfer-ownership="none"
                   nullable="1"
                   allow-none="1"
                   closure="3">
          <doc xml:space="preserve"
               filename="src/grl-source.h"
               line="205">user data</doc>
          <type name="gpointer" c:type="gpointer"/>
        </parameter>
        <parameter name="error"
                   transfer-ownership="none"
                   nullable="1"
                   allow-none="1">
          <doc xml:space="preserve"
               filename="src/grl-source.h"
               line="206">possible #GError generated</doc>
          <type name="GLib.Error" c:type="const GError*"/>
        </parameter>
      </parameters>
    </callback>
    <record name="SourceStoreMetadataSpec" c:type="GrlSourceStoreMetadataSpec">
      <doc xml:space="preserve"
           filename="src/grl-source.h"
           line="390">Data transport structure used internally by the plugins which support
store_metadata vmethod.</doc>
      <source-position filename="src/grl-source.h" line="414"/>
      <field name="source" writable="1">
        <doc xml:space="preserve"
             filename="src/grl-source.h"
             line="392">a source</doc>
        <type name="Source" c:type="GrlSource*"/>
      </field>
      <field name="media" writable="1">
        <doc xml:space="preserve"
             filename="src/grl-source.h"
             line="393">a #GrlMedia transfer object</doc>
        <type name="Media" c:type="GrlMedia*"/>
      </field>
      <field name="keys" writable="1">
        <doc xml:space="preserve"
             filename="src/grl-source.h"
             line="394">List of keys to be stored/updated.</doc>
        <type name="GLib.List" c:type="GList*">
          <type name="gpointer" c:type="gpointer"/>
        </type>
      </field>
      <field name="flags" writable="1">
        <doc xml:space="preserve"
             filename="src/grl-source.h"
             line="395">Flags to control specific bahviors of the set metadata operation.</doc>
        <type name="WriteFlags" c:type="GrlWriteFlags"/>
      </field>
      <field name="callback" writable="1">
        <doc xml:space="preserve"
             filename="src/grl-source.h"
             line="396">the callback passed to grl_source_store_metadata()</doc>
        <type name="SourceStoreCb" c:type="GrlSourceStoreCb"/>
      </field>
      <field name="user_data" writable="1">
        <doc xml:space="preserve"
             filename="src/grl-source.h"
             line="397">user data passed to grl_source_store_metadata()</doc>
        <type name="gpointer" c:type="gpointer"/>
      </field>
      <field name="failed_keys" writable="1">
        <doc xml:space="preserve"
             filename="src/grl-source.h"
             line="398">for internal use of the framework only.</doc>
        <type name="GLib.List" c:type="GList*">
          <type name="gpointer" c:type="gpointer"/>
        </type>
      </field>
      <field name="_grl_reserved" readable="0" private="1">
        <array zero-terminated="0" fixed-size="16">
          <type name="gpointer" c:type="gpointer"/>
        </array>
      </field>
    </record>
    <record name="SourceStoreSpec" c:type="GrlSourceStoreSpec">
      <doc xml:space="preserve"
           filename="src/grl-source.h"
           line="368">Data transport structure used internally by the plugins which support
store vmethod.</doc>
      <source-position filename="src/grl-source.h" line="388"/>
      <field name="source" writable="1">
        <doc xml:space="preserve"
             filename="src/grl-source.h"
             line="370">a media source</doc>
        <type name="Source" c:type="GrlSource*"/>
      </field>
      <field name="parent" writable="1">
        <doc xml:space="preserve"
             filename="src/grl-source.h"
             line="371">a parent to store the data transfer objects</doc>
        <type name="Media" c:type="GrlMedia*"/>
      </field>
      <field name="media" writable="1">
        <doc xml:space="preserve"
             filename="src/grl-source.h"
             line="372">a data transfer object</doc>
        <type name="Media" c:type="GrlMedia*"/>
      </field>
      <field name="callback" writable="1">
        <doc xml:space="preserve"
             filename="src/grl-source.h"
             line="373">the user defined callback</doc>
        <type name="SourceStoreCb" c:type="GrlSourceStoreCb"/>
      </field>
      <field name="user_data" writable="1">
        <doc xml:space="preserve"
             filename="src/grl-source.h"
             line="374">the user data to pass in the callback</doc>
        <type name="gpointer" c:type="gpointer"/>
      </field>
      <field name="_grl_reserved" readable="0" private="1">
        <array zero-terminated="0" fixed-size="16">
          <type name="gpointer" c:type="gpointer"/>
        </array>
      </field>
    </record>
    <bitfield name="SupportedMedia"
              glib:type-name="GrlSupportedMedia"
              glib:get-type="grl_supported_media_get_type"
              c:type="GrlSupportedMedia">
      <member name="none"
              value="0"
              c:identifier="GRL_SUPPORTED_MEDIA_NONE"
              glib:nick="none"
              glib:name="GRL_SUPPORTED_MEDIA_NONE">
        <doc xml:space="preserve"
             filename="src/grl-source.h"
             line="115">no media</doc>
      </member>
      <member name="audio"
              value="1"
              c:identifier="GRL_SUPPORTED_MEDIA_AUDIO"
              glib:nick="audio"
              glib:name="GRL_SUPPORTED_MEDIA_AUDIO">
        <doc xml:space="preserve"
             filename="src/grl-source.h"
             line="116">audio media</doc>
      </member>
      <member name="video"
              value="2"
              c:identifier="GRL_SUPPORTED_MEDIA_VIDEO"
              glib:nick="video"
              glib:name="GRL_SUPPORTED_MEDIA_VIDEO">
        <doc xml:space="preserve"
             filename="src/grl-source.h"
             line="117">video media</doc>
      </member>
      <member name="image"
              value="4"
              c:identifier="GRL_SUPPORTED_MEDIA_IMAGE"
              glib:nick="image"
              glib:name="GRL_SUPPORTED_MEDIA_IMAGE">
        <doc xml:space="preserve"
             filename="src/grl-source.h"
             line="118">image media</doc>
      </member>
      <member name="all"
              value="7"
              c:identifier="GRL_SUPPORTED_MEDIA_ALL"
              glib:nick="all"
              glib:name="GRL_SUPPORTED_MEDIA_ALL">
        <doc xml:space="preserve"
             filename="src/grl-source.h"
             line="119">any media</doc>
      </member>
    </bitfield>
    <bitfield name="SupportedOps"
              glib:type-name="GrlSupportedOps"
              glib:get-type="grl_supported_ops_get_type"
              c:type="GrlSupportedOps">
      <doc xml:space="preserve"
           filename="src/grl-source.h"
           line="81">Bitwise flags which reflect the kind of operations that a
#GrlSource supports.</doc>
      <member name="none"
              value="0"
              c:identifier="GRL_OP_NONE"
              glib:nick="none"
              glib:name="GRL_OP_NONE">
        <doc xml:space="preserve"
             filename="src/grl-source.h"
             line="83">no operation is supported</doc>
      </member>
      <member name="resolve"
              value="1"
              c:identifier="GRL_OP_RESOLVE"
              glib:nick="resolve"
              glib:name="GRL_OP_RESOLVE">
        <doc xml:space="preserve"
             filename="src/grl-source.h"
             line="84">Fetch specific keys of metadata based on other metadata.</doc>
      </member>
      <member name="browse"
              value="2"
              c:identifier="GRL_OP_BROWSE"
              glib:nick="browse"
              glib:name="GRL_OP_BROWSE">
        <doc xml:space="preserve"
             filename="src/grl-source.h"
             line="85">Retrieve complete sets of #GrlMedia</doc>
      </member>
      <member name="search"
              value="4"
              c:identifier="GRL_OP_SEARCH"
              glib:nick="search"
              glib:name="GRL_OP_SEARCH">
        <doc xml:space="preserve"
             filename="src/grl-source.h"
             line="86">Look up for #GrlMedia given a search text</doc>
      </member>
      <member name="query"
              value="8"
              c:identifier="GRL_OP_QUERY"
              glib:nick="query"
              glib:name="GRL_OP_QUERY">
        <doc xml:space="preserve"
             filename="src/grl-source.h"
             line="87">Look up for #GrlMedia give a service specific query</doc>
      </member>
      <member name="store"
              value="16"
              c:identifier="GRL_OP_STORE"
              glib:nick="store"
              glib:name="GRL_OP_STORE">
        <doc xml:space="preserve"
             filename="src/grl-source.h"
             line="88">Store content in a service</doc>
      </member>
      <member name="store_parent"
              value="32"
              c:identifier="GRL_OP_STORE_PARENT"
              glib:nick="store-parent"
              glib:name="GRL_OP_STORE_PARENT">
        <doc xml:space="preserve"
             filename="src/grl-source.h"
             line="89">Store content as child of a certian parent category.</doc>
      </member>
      <member name="store_metadata"
              value="64"
              c:identifier="GRL_OP_STORE_METADATA"
              glib:nick="store-metadata"
              glib:name="GRL_OP_STORE_METADATA">
        <doc xml:space="preserve"
             filename="src/grl-source.h"
             line="90">Update metadata of a #GrlMedia in a service.</doc>
      </member>
      <member name="remove"
              value="128"
              c:identifier="GRL_OP_REMOVE"
              glib:nick="remove"
              glib:name="GRL_OP_REMOVE">
        <doc xml:space="preserve"
             filename="src/grl-source.h"
             line="91">Remove content from a service.</doc>
      </member>
      <member name="media_from_uri"
              value="256"
              c:identifier="GRL_OP_MEDIA_FROM_URI"
              glib:nick="media-from-uri"
              glib:name="GRL_OP_MEDIA_FROM_URI">
        <doc xml:space="preserve"
             filename="src/grl-source.h"
             line="92">Create a #GrlMedia instance from an URI
representing a media resource.</doc>
      </member>
      <member name="notify_change"
              value="512"
              c:identifier="GRL_OP_NOTIFY_CHANGE"
              glib:nick="notify-change"
              glib:name="GRL_OP_NOTIFY_CHANGE">
        <doc xml:space="preserve"
             filename="src/grl-source.h"
             line="94">Notify about changes in the #GrlSource.</doc>
      </member>
    </bitfield>
    <bitfield name="TypeFilter"
              glib:type-name="GrlTypeFilter"
              glib:get-type="grl_type_filter_get_type"
              c:type="GrlTypeFilter">
      <doc xml:space="preserve"
           filename="src/grl-caps.h"
           line="69">Type of media to allow.</doc>
      <member name="none"
              value="0"
              c:identifier="GRL_TYPE_FILTER_NONE"
              glib:nick="none"
              glib:name="GRL_TYPE_FILTER_NONE">
        <doc xml:space="preserve"
             filename="src/grl-caps.h"
             line="71">allow no content (only containers)</doc>
      </member>
      <member name="audio"
              value="1"
              c:identifier="GRL_TYPE_FILTER_AUDIO"
              glib:nick="audio"
              glib:name="GRL_TYPE_FILTER_AUDIO">
        <doc xml:space="preserve"
             filename="src/grl-caps.h"
             line="72">allow audio content</doc>
      </member>
      <member name="video"
              value="2"
              c:identifier="GRL_TYPE_FILTER_VIDEO"
              glib:nick="video"
              glib:name="GRL_TYPE_FILTER_VIDEO">
        <doc xml:space="preserve"
             filename="src/grl-caps.h"
             line="73">allow video content</doc>
      </member>
      <member name="image"
              value="4"
              c:identifier="GRL_TYPE_FILTER_IMAGE"
              glib:nick="image"
              glib:name="GRL_TYPE_FILTER_IMAGE">
        <doc xml:space="preserve"
             filename="src/grl-caps.h"
             line="74">allow image content</doc>
      </member>
      <member name="all"
              value="7"
              c:identifier="GRL_TYPE_FILTER_ALL"
              glib:nick="all"
              glib:name="GRL_TYPE_FILTER_ALL">
        <doc xml:space="preserve"
             filename="src/grl-caps.h"
             line="75">allow any type of content</doc>
      </member>
    </bitfield>
    <function-macro name="WARNING"
                    c:identifier="GRL_WARNING"
                    introspectable="0">
      <doc xml:space="preserve"
           filename="src/grl-log.h"
           line="168">Output a warning message in the default log domain.</doc>
      <source-position filename="src/grl-log.h" line="197"/>
      <parameters>
        <parameter name="...">
          <doc xml:space="preserve"
               filename="src/grl-log.h"
               line="170">printf-style message to output</doc>
        </parameter>
      </parameters>
    </function-macro>
    <bitfield name="WriteFlags"
              glib:type-name="GrlWriteFlags"
              glib:get-type="grl_write_flags_get_type"
              c:type="GrlWriteFlags">
      <doc xml:space="preserve"
           filename="src/grl-operation-options.h"
           line="84">Flags for writing operations.</doc>
      <member name="normal"
              value="0"
              c:identifier="GRL_WRITE_NORMAL"
              glib:nick="normal"
              glib:name="GRL_WRITE_NORMAL">
        <doc xml:space="preserve"
             filename="src/grl-operation-options.h"
             line="86">Normal mode.</doc>
      </member>
      <member name="full"
              value="1"
              c:identifier="GRL_WRITE_FULL"
              glib:nick="full"
              glib:name="GRL_WRITE_FULL">
        <doc xml:space="preserve"
             filename="src/grl-operation-options.h"
             line="87">Try other plugins if necessary.</doc>
      </member>
    </bitfield>
    <function name="date_time_from_iso8601"
              c:identifier="grl_date_time_from_iso8601"
              version="0.2.0">
      <source-position filename="src/grl-util.h" line="43"/>
      <return-value transfer-ownership="full">
        <doc xml:space="preserve"
             filename="src/grl-util.c"
             line="141">a newly-allocated #GDateTime set to the time corresponding to
@date, or %NULL if @date could not be parsed properly.</doc>
        <type name="GLib.DateTime" c:type="GDateTime*"/>
      </return-value>
      <parameters>
        <parameter name="date" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="src/grl-util.c"
               line="139">a date expressed in iso8601 format</doc>
          <type name="utf8" c:type="const gchar*"/>
        </parameter>
      </parameters>
    </function>
    <function name="deinit" c:identifier="grl_deinit" version="0.2.8">
      <doc xml:space="preserve"
           filename="src/grilo.c"
           line="172">Deinitializes the Grilo library.

Call this function after finalizing using Grilo, in order to free and clean
up all the resources created.</doc>
      <source-position filename="src/grilo.h" line="51"/>
      <return-value transfer-ownership="none">
        <type name="none" c:type="void"/>
      </return-value>
    </function>
    <function name="g_value_dup" c:identifier="grl_g_value_dup">
      <source-position filename="src/grl-value-helper.h" line="42"/>
      <return-value transfer-ownership="full">
        <doc xml:space="preserve"
             filename="src/grl-value-helper.c"
             line="77">a duplicated #GValue</doc>
        <type name="GObject.Value" c:type="GValue*"/>
      </return-value>
      <parameters>
        <parameter name="value" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="src/grl-value-helper.c"
               line="75">the #GValue to copy</doc>
          <type name="GObject.Value" c:type="const GValue*"/>
        </parameter>
      </parameters>
    </function>
    <function name="g_value_free" c:identifier="grl_g_value_free">
      <source-position filename="src/grl-value-helper.h" line="36"/>
      <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>
      </parameters>
    </function>
    <function name="g_value_hashtable_new"
              c:identifier="grl_g_value_hashtable_new">
      <source-position filename="src/grl-value-helper.h" line="38"/>
      <return-value transfer-ownership="full">
        <doc xml:space="preserve"
             filename="src/grl-value-helper.c"
             line="54">a new hash table made to contain GValues.</doc>
        <type name="GLib.HashTable" c:type="GHashTable*">
          <type name="utf8"/>
          <type name="GObject.Value"/>
        </type>
      </return-value>
    </function>
    <function name="g_value_hashtable_new_direct"
              c:identifier="grl_g_value_hashtable_new_direct">
      <source-position filename="src/grl-value-helper.h" line="40"/>
      <return-value transfer-ownership="full">
        <doc xml:space="preserve"
             filename="src/grl-value-helper.c"
             line="65">a new hash table made to contain GValues.</doc>
        <type name="GLib.HashTable" c:type="GHashTable*">
          <type name="gpointer"/>
          <type name="GObject.Value"/>
        </type>
      </return-value>
    </function>
    <function name="g_value_new" c:identifier="grl_g_value_new">
      <source-position filename="src/grl-value-helper.h" line="34"/>
      <return-value transfer-ownership="full">
        <type name="GObject.Value" c:type="GValue*"/>
      </return-value>
      <parameters>
        <parameter name="g_type" transfer-ownership="none">
          <type name="GType" c:type="GType"/>
        </parameter>
      </parameters>
    </function>
    <docsection name="grilo">
      <doc xml:space="preserve"
           filename="src/grilo.c"
           line="23">Grilo is a metadata retrieval library. Given a search or browse operation,
the library will retrieve a set of metadata related to the operation from a
set of on-line services.

The Grilo library should be initialized with grl_init() before it can be used.
You should pass pointers to the main argc and argv variables so that Grilo can
process its own command line options.

After using it, in order to close cleanly all the resources opened either by
the core library or the sources, call grl_deinit().</doc>
    </docsection>
    <docsection name="grl-caps">
      <doc xml:space="preserve"
           filename="src/grl-caps.c"
           line="23">A #GrlCaps instance is here to help you know if a given set of operation
options is supported for a given operation.

Here is an example of how this would be used.
|[
GrlCaps *caps = grl_source_get_caps (GRL_SOURCE (my_source),
                                     GRL_OP_SEARCH);
GrlOperationOptions *supported_options;
if (grl_operation_options_obey_caps (my_options, caps, &amp;supported_options, NULL))
  grl_media_source_search (my_source, "blah", interesting_keys, my_options, ...);
else // only use a subset of the options we wanted to pass
  grl_media_source_search (my_source, "blah", interesting_keys, supported_options, ...);
]|

A #GrlCaps can also be passed to grl_operation_options_new(). The created
#GrlOperationOptions instance would then check any change against its caps.</doc>
    </docsection>
    <docsection name="grl-config">
      <doc xml:space="preserve"
           filename="src/data/grl-config.c"
           line="27">This class is used to configure plugins during a session.

Pre-defined settings are read from plugin specific configuration files.
The settings can be changed to properly setup the session, but are not
persistent. Changes are local to each #GrlConfig instance.</doc>
    </docsection>
    <docsection name="grl-data">
      <doc xml:space="preserve"
           filename="src/data/grl-data.c"
           line="25">This class acts as a generic metadata dictionary where metadata keys and
their values can be stored.  Usually, application and plugin developers would
interact with specific subclass of #GrlData, #GrlMedia, which provide
specific API to manipulate well known attributes of these media types.</doc>
    </docsection>
    <docsection name="grl-log">
      <doc xml:space="preserve"
           filename="src/grl-log.c"
           line="23">This class stores information related to the log system</doc>
    </docsection>
    <docsection name="grl-media">
      <doc xml:space="preserve"
           filename="src/data/grl-media.c"
           line="25">This high level class represents a multimedia item. It has methods to
set and get properties like author, title, description, and so on.</doc>
    </docsection>
    <docsection name="grl-metadata-key">
      <doc xml:space="preserve"
           filename="src/grl-metadata-key.c"
           line="23">This is the list of defined keys in grilo for media entries.</doc>
    </docsection>
    <docsection name="grl-multiple">
      <doc xml:space="preserve"
           filename="src/grl-multiple.c"
           line="23">These helper functions are due to ease the search in multiple sources.
You can specify the list of sources to use for the searching. Those sources
must have enabled the search capability.

Also you can set %NULL that sources list, so the function will use all
the available sources with the search capability.</doc>
    </docsection>
    <docsection name="grl-plugin">
      <doc xml:space="preserve"
           filename="src/grl-plugin.c"
           line="23">Grilo is extensible, so #GrlSource instances can be loaded at runtime.
A plugin system can provide one or more of the basic
&lt;application&gt;Grilo&lt;/application&gt; #GrlSource subclasses.

This is a base class for anything that can be added to a Grilo Plugin.</doc>
    </docsection>
    <docsection name="grl-registry">
      <doc xml:space="preserve"
           filename="src/grl-registry.c"
           line="24">The registry holds the metadata of a set of plugins.

The #GrlRegistry object is a list of plugins and some functions
for dealing with them. Each #GrlPlugin is matched 1-1 with a file
on disk, and may or may not be loaded a given time. There only can be
a single instance of #GrlRegistry (singleton pattern).

A #GrlPlugin can hold several data #GrlSource sources, and #GrlRegistry
shall register each one of them.</doc>
    </docsection>
    <docsection name="grl-related-keys">
      <doc xml:space="preserve"
           filename="src/data/grl-related-keys.c"
           line="25">When handling media keys, like artist, URI, mime-type, and so on, some of
these keys are somewhat related: they do not make sense if they are not
accompanied by other keys.

For instance, media URI and and mime-type are related keys: mime-type does
not make sense if it is not accompanied by an URI. Moreover, for each URI
value, there is a corresponding mime-type value.

#GrlRelatedKeys stores related keys and their values in one place, so user
can handle them in one shot.</doc>
    </docsection>
    <docsection name="grl-source">
      <doc xml:space="preserve"
           filename="src/grl-source.c"
           line="23">GrlSource is the abstract base class needed to construct a source providing
multimedia information that can be used in a Grilo application.

The sources fetch information from different online or local
databases and store them in the #GrlMedia.</doc>
    </docsection>
    <function name="init" c:identifier="grl_init" version="0.1.6">
      <doc xml:space="preserve"
           filename="src/grilo.c"
           line="142">Initializes the Grilo library</doc>
      <source-position filename="src/grilo.h" line="49"/>
      <return-value transfer-ownership="none">
        <type name="none" c:type="void"/>
      </return-value>
      <parameters>
        <parameter name="argc"
                   direction="inout"
                   caller-allocates="0"
                   transfer-ownership="full"
                   nullable="1"
                   allow-none="1">
          <doc xml:space="preserve"
               filename="src/grilo.c"
               line="144">number of input arguments, length of @argv</doc>
          <type name="gint" c:type="gint*"/>
        </parameter>
        <parameter name="argv"
                   direction="inout"
                   caller-allocates="0"
                   transfer-ownership="none"
                   nullable="1"
                   allow-none="1">
          <doc xml:space="preserve"
               filename="src/grilo.c"
               line="145">list of arguments</doc>
          <array length="0" zero-terminated="0" c:type="gchar***">
            <type name="utf8"/>
          </array>
        </parameter>
      </parameters>
    </function>
    <function name="init_get_option_group"
              c:identifier="grl_init_get_option_group"
              version="0.1.6">
      <doc xml:space="preserve"
           filename="src/grilo.c"
           line="197">Returns a #GOptionGroup with Grilo's argument specifications.

This function is useful if you want to integrate Grilo with other
libraries that use the GOption commandline parser
(see g_option_context_add_group() ).</doc>
      <source-position filename="src/grilo.h" line="53"/>
      <return-value transfer-ownership="full">
        <doc xml:space="preserve"
             filename="src/grilo.c"
             line="206">a pointer to Grilo's option group. Should be dereferenced
after use.</doc>
        <type name="GLib.OptionGroup" c:type="GOptionGroup*"/>
      </return-value>
    </function>
    <function name="list_from_va"
              c:identifier="grl_list_from_va"
              version="0.1.6"
              introspectable="0">
      <doc xml:space="preserve"
           filename="src/grl-util.c"
           line="108">Returns a #GList containing the va_list pointers. Use @NULL to finalize them,</doc>
      <source-position filename="src/grl-util.h" line="41"/>
      <return-value>
        <doc xml:space="preserve"
             filename="src/grl-util.c"
             line="115">a #GList.</doc>
        <type name="GLib.List" c:type="GList*">
          <type name="gpointer" c:type="gpointer"/>
        </type>
      </return-value>
      <parameters>
        <parameter name="p"
                   transfer-ownership="none"
                   nullable="1"
                   allow-none="1">
          <doc xml:space="preserve"
               filename="src/grl-util.c"
               line="110">first pointer</doc>
          <type name="gpointer" c:type="gpointer"/>
        </parameter>
        <parameter name="..." transfer-ownership="none">
          <doc xml:space="preserve"
               filename="src/grl-util.c"
               line="111">va_list pointers</doc>
          <varargs/>
        </parameter>
      </parameters>
    </function>
    <function name="log"
              c:identifier="grl_log"
              version="0.1.7"
              introspectable="0">
      <doc xml:space="preserve"
           filename="src/grl-log.c"
           line="307">Send a log message.</doc>
      <source-position filename="src/grl-log.h" line="277"/>
      <return-value transfer-ownership="none">
        <type name="none" c:type="void"/>
      </return-value>
      <parameters>
        <parameter name="domain" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="src/grl-log.c"
               line="309">a domain</doc>
          <type name="LogDomain" c:type="GrlLogDomain*"/>
        </parameter>
        <parameter name="level" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="src/grl-log.c"
               line="310">log level</doc>
          <type name="LogLevel" c:type="GrlLogLevel"/>
        </parameter>
        <parameter name="strloc" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="src/grl-log.c"
               line="311">string, usually line of code where function is invoked</doc>
          <type name="utf8" c:type="const gchar*"/>
        </parameter>
        <parameter name="format" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="src/grl-log.c"
               line="312">log message</doc>
          <type name="utf8" c:type="const gchar*"/>
        </parameter>
        <parameter name="..." transfer-ownership="none">
          <doc xml:space="preserve"
               filename="src/grl-log.c"
               line="313">parameters to insert in the log message</doc>
          <varargs/>
        </parameter>
      </parameters>
    </function>
    <function name="log_configure"
              c:identifier="grl_log_configure"
              version="0.1.7">
      <doc xml:space="preserve"
           filename="src/grl-log.c"
           line="403">Configure a set of log domains. The default configuration is to display
warning and error messages only for all the log domains.

The configuration string follows the following grammar:

|[
  config-list: config | config ',' config-list
  config: domain ':' level
  domain: '*' | [a-zA-Z0-9]+
  level: '*' | '-' | named-level | num-level
  named-level: "none" | "error" | "warning" | "message" | "info" | "debug"
  num-level: [0-5]
]|

examples:
&lt;itemizedlist&gt;
  &lt;listitem&gt;&lt;para&gt;"*:*": maximum verbosity for all the log domains&lt;/para&gt;
  &lt;/listitem&gt;
  &lt;listitem&gt;&lt;para&gt;"*:-": don't print any message&lt;/para&gt;&lt;/listitem&gt;
  &lt;listitem&gt;&lt;para&gt;"media-source:debug,metadata-source:debug": prints debug,
  info, message warning and error messages for the media-source and
  metadata-source log domains&lt;/para&gt;&lt;/listitem&gt;
&lt;/itemizedlist&gt;

&lt;note&gt;It's possible to override the log configuration at runtime by
defining the GRL_DEBUG environment variable to a configuration string
as described above&lt;/note&gt;</doc>
      <source-position filename="src/grl-log.h" line="276"/>
      <return-value transfer-ownership="none">
        <type name="none" c:type="void"/>
      </return-value>
      <parameters>
        <parameter name="config" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="src/grl-log.c"
               line="405">A string describing the wanted log configuration</doc>
          <type name="utf8" c:type="const gchar*"/>
        </parameter>
      </parameters>
    </function>
    <function name="log_domain_new"
              c:identifier="grl_log_domain_new"
              moved-to="LogDomain.new"
              version="0.1.7"
              introspectable="0">
      <source-position filename="src/grl-log.h" line="273"/>
      <return-value>
        <doc xml:space="preserve"
             filename="src/grl-log.c"
             line="98">The new log domain</doc>
        <type name="LogDomain" c:type="GrlLogDomain*"/>
      </return-value>
      <parameters>
        <parameter name="name" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="src/grl-log.c"
               line="96">The name for the new log domain</doc>
          <type name="utf8" c:type="const gchar*"/>
        </parameter>
      </parameters>
    </function>
    <function name="metadata_key_get_desc"
              c:identifier="grl_metadata_key_get_desc"
              version="0.1.6">
      <doc xml:space="preserve"
           filename="src/grl-metadata-key.c"
           line="716">Retrieves the description associated with the key</doc>
      <source-position filename="src/grl-metadata-key.h" line="137"/>
      <return-value transfer-ownership="none">
        <doc xml:space="preserve"
             filename="src/grl-metadata-key.c"
             line="722">the description of the key</doc>
        <type name="utf8" c:type="const gchar*"/>
      </return-value>
      <parameters>
        <parameter name="key" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="src/grl-metadata-key.c"
               line="718">key to look up</doc>
          <type name="KeyID" c:type="GrlKeyID"/>
        </parameter>
      </parameters>
    </function>
    <function name="metadata_key_get_name"
              c:identifier="grl_metadata_key_get_name"
              version="0.1.6">
      <doc xml:space="preserve"
           filename="src/grl-metadata-key.c"
           line="694">Retrieves the name associated with the key</doc>
      <source-position filename="src/grl-metadata-key.h" line="135"/>
      <return-value transfer-ownership="none">
        <doc xml:space="preserve"
             filename="src/grl-metadata-key.c"
             line="700">The name of the key</doc>
        <type name="utf8" c:type="const gchar*"/>
      </return-value>
      <parameters>
        <parameter name="key" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="src/grl-metadata-key.c"
               line="696">key to look up</doc>
          <type name="KeyID" c:type="GrlKeyID"/>
        </parameter>
      </parameters>
    </function>
    <function name="metadata_key_get_type"
              c:identifier="grl_metadata_key_get_type"
              version="0.2.0">
      <doc xml:space="preserve"
           filename="src/grl-metadata-key.c"
           line="738">Retrieves the expected type for values associated with this key</doc>
      <source-position filename="src/grl-metadata-key.h" line="139"/>
      <return-value transfer-ownership="none">
        <doc xml:space="preserve"
             filename="src/grl-metadata-key.c"
             line="744">the expected value type</doc>
        <type name="GType" c:type="GType"/>
      </return-value>
      <parameters>
        <parameter name="key" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="src/grl-metadata-key.c"
               line="740">key to look up</doc>
          <type name="KeyID" c:type="GrlKeyID"/>
        </parameter>
      </parameters>
    </function>
    <function name="metadata_key_list_new"
              c:identifier="grl_metadata_key_list_new"
              version="0.2.0"
              introspectable="0">
      <doc xml:space="preserve"
           filename="src/grl-metadata-key.c"
           line="759">Returns a #GList containing the va_list keys. Use #GRL_METADATA_KEY_INVALID
to finalize them.</doc>
      <source-position filename="src/grl-metadata-key.h" line="141"/>
      <return-value>
        <doc xml:space="preserve"
             filename="src/grl-metadata-key.c"
             line="767">a #GList</doc>
        <type name="GLib.List" c:type="GList*">
          <type name="gpointer" c:type="gpointer"/>
        </type>
      </return-value>
      <parameters>
        <parameter name="first_key" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="src/grl-metadata-key.c"
               line="761">first key</doc>
          <type name="KeyID" c:type="GrlKeyID"/>
        </parameter>
        <parameter name="..." transfer-ownership="none">
          <doc xml:space="preserve"
               filename="src/grl-metadata-key.c"
               line="762">va_list keys</doc>
          <varargs/>
        </parameter>
      </parameters>
    </function>
    <function name="multiple_get_media_from_uri"
              c:identifier="grl_multiple_get_media_from_uri"
              version="0.2.0">
      <doc xml:space="preserve"
           filename="src/grl-multiple.c"
           line="683">Goes though all available media sources until it finds one capable of
constructing a GrlMedia object representing the media resource exposed
by @uri.

This method is asynchronous.</doc>
      <source-position filename="src/grl-multiple.h" line="50"/>
      <return-value transfer-ownership="none">
        <type name="none" c:type="void"/>
      </return-value>
      <parameters>
        <parameter name="uri" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="src/grl-multiple.c"
               line="685">A URI that can be used to identify a media resource</doc>
          <type name="utf8" c:type="const gchar*"/>
        </parameter>
        <parameter name="keys" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="src/grl-multiple.c"
               line="686">List of metadata keys we want to obtain.</doc>
          <type name="GLib.List" c:type="const GList*">
            <type name="KeyID"/>
          </type>
        </parameter>
        <parameter name="options" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="src/grl-multiple.c"
               line="687">options wanted for that operation</doc>
          <type name="OperationOptions" c:type="GrlOperationOptions*"/>
        </parameter>
        <parameter name="callback"
                   transfer-ownership="none"
                   scope="notified"
                   closure="4">
          <doc xml:space="preserve"
               filename="src/grl-multiple.c"
               line="688">the user defined callback</doc>
          <type name="SourceResolveCb" c:type="GrlSourceResolveCb"/>
        </parameter>
        <parameter name="user_data"
                   transfer-ownership="none"
                   nullable="1"
                   allow-none="1">
          <doc xml:space="preserve"
               filename="src/grl-multiple.c"
               line="689">the user data to pass to the user callback</doc>
          <type name="gpointer" c:type="gpointer"/>
        </parameter>
      </parameters>
    </function>
    <function name="multiple_search"
              c:identifier="grl_multiple_search"
              version="0.2.0">
      <doc xml:space="preserve"
           filename="src/grl-multiple.c"
           line="525">Search for @text in all the sources specified in @sources.

If @text is @NULL then NULL-text searchs will be used for each searchable
plugin (see #grl_source_search for more details).

This method is asynchronous.</doc>
      <source-position filename="src/grl-multiple.h" line="37"/>
      <return-value transfer-ownership="none">
        <doc xml:space="preserve"
             filename="src/grl-multiple.c"
             line="544">the operation identifier</doc>
        <type name="guint" c:type="guint"/>
      </return-value>
      <parameters>
        <parameter name="sources"
                   transfer-ownership="none"
                   nullable="1"
                   allow-none="1">
          <doc xml:space="preserve"
               filename="src/grl-multiple.c"
               line="527">
a #GList of #GrlSource&lt;!-- --&gt;s to search from (%NULL for all
searchable sources)</doc>
          <type name="GLib.List" c:type="const GList*">
            <type name="Source"/>
          </type>
        </parameter>
        <parameter name="text" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="src/grl-multiple.c"
               line="530">the text to search for</doc>
          <type name="utf8" c:type="const gchar*"/>
        </parameter>
        <parameter name="keys" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="src/grl-multiple.c"
               line="531">the #GList of
#GrlKeyID to retrieve</doc>
          <type name="GLib.List" c:type="const GList*">
            <type name="KeyID"/>
          </type>
        </parameter>
        <parameter name="options" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="src/grl-multiple.c"
               line="533">options wanted for that operation</doc>
          <type name="OperationOptions" c:type="GrlOperationOptions*"/>
        </parameter>
        <parameter name="callback"
                   transfer-ownership="none"
                   scope="notified"
                   closure="5">
          <doc xml:space="preserve"
               filename="src/grl-multiple.c"
               line="534">the user defined callback</doc>
          <type name="SourceResultCb" c:type="GrlSourceResultCb"/>
        </parameter>
        <parameter name="user_data"
                   transfer-ownership="none"
                   nullable="1"
                   allow-none="1">
          <doc xml:space="preserve"
               filename="src/grl-multiple.c"
               line="535">the user data to pass to the user callback</doc>
          <type name="gpointer" c:type="gpointer"/>
        </parameter>
      </parameters>
    </function>
    <function name="multiple_search_sync"
              c:identifier="grl_multiple_search_sync"
              version="0.2.0"
              throws="1">
      <doc xml:space="preserve"
           filename="src/grl-multiple.c"
           line="630">Search for @text in all the sources specified in @sources.

This method is synchronous.</doc>
      <source-position filename="src/grl-multiple.h" line="44"/>
      <return-value transfer-ownership="full">
        <doc xml:space="preserve"
             filename="src/grl-multiple.c"
             line="645">a list with #GrlMedia elements</doc>
        <type name="GLib.List" c:type="GList*">
          <type name="Media"/>
        </type>
      </return-value>
      <parameters>
        <parameter name="sources"
                   transfer-ownership="none"
                   nullable="1"
                   allow-none="1">
          <doc xml:space="preserve"
               filename="src/grl-multiple.c"
               line="632">
a #GList of #GrlSource&lt;!-- --&gt;s where to search from (%NULL for all
available sources with search capability)</doc>
          <type name="GLib.List" c:type="const GList*">
            <type name="Source"/>
          </type>
        </parameter>
        <parameter name="text" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="src/grl-multiple.c"
               line="635">the text to search for</doc>
          <type name="utf8" c:type="const gchar*"/>
        </parameter>
        <parameter name="keys" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="src/grl-multiple.c"
               line="636">the #GList of
#GrlKeyID to retrieve</doc>
          <type name="GLib.List" c:type="const GList*">
            <type name="KeyID"/>
          </type>
        </parameter>
        <parameter name="options" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="src/grl-multiple.c"
               line="638">options wanted for that operation</doc>
          <type name="OperationOptions" c:type="GrlOperationOptions*"/>
        </parameter>
      </parameters>
    </function>
    <function name="operation_cancel" c:identifier="grl_operation_cancel">
      <doc xml:space="preserve"
           filename="src/grl-operation.c"
           line="119">Cancel an operation.</doc>
      <source-position filename="src/grl-operation.h" line="34"/>
      <return-value transfer-ownership="none">
        <type name="none" c:type="void"/>
      </return-value>
      <parameters>
        <parameter name="operation_id" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="src/grl-operation.c"
               line="121">the identifier of a running operation</doc>
          <type name="guint" c:type="guint"/>
        </parameter>
      </parameters>
    </function>
    <function name="operation_get_data" c:identifier="grl_operation_get_data">
      <doc xml:space="preserve"
           filename="src/grl-operation.c"
           line="143">Obtains the previously attached data</doc>
      <source-position filename="src/grl-operation.h" line="36"/>
      <return-value transfer-ownership="none" nullable="1">
        <doc xml:space="preserve"
             filename="src/grl-operation.c"
             line="149">The previously attached data.</doc>
        <type name="gpointer" c:type="gpointer"/>
      </return-value>
      <parameters>
        <parameter name="operation_id" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="src/grl-operation.c"
               line="145">the identifier of a running operation</doc>
          <type name="guint" c:type="guint"/>
        </parameter>
      </parameters>
    </function>
    <function name="operation_set_data" c:identifier="grl_operation_set_data">
      <doc xml:space="preserve"
           filename="src/grl-operation.c"
           line="165">Attach a pointer to the specific operation.</doc>
      <source-position filename="src/grl-operation.h" line="38"/>
      <return-value transfer-ownership="none">
        <type name="none" c:type="void"/>
      </return-value>
      <parameters>
        <parameter name="operation_id" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="src/grl-operation.c"
               line="167">the identifier of a running operation</doc>
          <type name="guint" c:type="guint"/>
        </parameter>
        <parameter name="user_data"
                   transfer-ownership="none"
                   nullable="1"
                   allow-none="1">
          <doc xml:space="preserve"
               filename="src/grl-operation.c"
               line="168">the data to attach</doc>
          <type name="gpointer" c:type="gpointer"/>
        </parameter>
      </parameters>
    </function>
    <function name="operation_set_data_full"
              c:identifier="grl_operation_set_data_full"
              version="0.2.7">
      <doc xml:space="preserve"
           filename="src/grl-operation.c"
           line="178">Attach a pointer to the specific operation.

Note that the @destroy_func callback is not called if @user_data is %NULL.</doc>
      <source-position filename="src/grl-operation.h" line="40"/>
      <return-value transfer-ownership="none">
        <type name="none" c:type="void"/>
      </return-value>
      <parameters>
        <parameter name="operation_id" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="src/grl-operation.c"
               line="180">the identifier of a running operation</doc>
          <type name="guint" c:type="guint"/>
        </parameter>
        <parameter name="user_data"
                   transfer-ownership="none"
                   nullable="1"
                   allow-none="1">
          <doc xml:space="preserve"
               filename="src/grl-operation.c"
               line="181">the data to attach</doc>
          <type name="gpointer" c:type="gpointer"/>
        </parameter>
        <parameter name="destroy_func"
                   transfer-ownership="none"
                   nullable="1"
                   allow-none="1"
                   scope="async">
          <doc xml:space="preserve"
               filename="src/grl-operation.c"
               line="182">function to release @user_data when the operation terminates</doc>
          <type name="GLib.DestroyNotify" c:type="GDestroyNotify"/>
        </parameter>
      </parameters>
    </function>
    <function name="paging_translate"
              c:identifier="grl_paging_translate"
              version="0.1.6">
      <doc xml:space="preserve"
           filename="src/grl-util.c"
           line="33">Grilo browsing implements a paging mechanism through @skip and @count values.

But there are some services (like Jamendo or Flickr) where paging is done
through a page number and page size: user request all elements in a page,
specifying in most cases what is the page size.

This function is a helper for this task, computing from @skip and @count what
is the optimal value of page size (limited by @max_page_size), which page
should the user request, and where requested data start inside the page.

By optimal we mean that it computes those values so only one page is required
to satisfy the data, using the smallest page size. If user is limiting page
size, then more requests to services might be needed. But still page size
will be an optimal value.

If @page_size is @NULL, then page size will be @max_page_size. If the later
is also 0, then page size will be #G_MAXUINT.</doc>
      <source-position filename="src/grl-util.h" line="34"/>
      <return-value transfer-ownership="none">
        <type name="none" c:type="void"/>
      </return-value>
      <parameters>
        <parameter name="skip" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="src/grl-util.c"
               line="35">number of elements to skip</doc>
          <type name="guint" c:type="guint"/>
        </parameter>
        <parameter name="count" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="src/grl-util.c"
               line="36">number of elements to retrieve</doc>
          <type name="guint" c:type="guint"/>
        </parameter>
        <parameter name="max_page_size" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="src/grl-util.c"
               line="37">maximum value for page size (0 for unlimited size)</doc>
          <type name="guint" c:type="guint"/>
        </parameter>
        <parameter name="page_size" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="src/grl-util.c"
               line="38">optimal page size</doc>
          <type name="guint" c:type="guint*"/>
        </parameter>
        <parameter name="page_number" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="src/grl-util.c"
               line="39">page which contain the first element to retrieve (starting at 1)</doc>
          <type name="guint" c:type="guint*"/>
        </parameter>
        <parameter name="internal_offset" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="src/grl-util.c"
               line="40">in the @page_number, offset where first element can be found (starting at 0)</doc>
          <type name="guint" c:type="guint*"/>
        </parameter>
      </parameters>
    </function>
    <function name="range_value_hashtable_insert"
              c:identifier="grl_range_value_hashtable_insert"
              moved-to="RangeValue.hashtable_insert">
      <source-position filename="src/grl-range-value.h" line="48"/>
      <return-value transfer-ownership="none">
        <type name="none" c:type="void"/>
      </return-value>
      <parameters>
        <parameter name="hash_table" transfer-ownership="none">
          <type name="GLib.HashTable" c:type="GHashTable*">
            <type name="gpointer" c:type="gpointer"/>
            <type name="gpointer" c:type="gpointer"/>
          </type>
        </parameter>
        <parameter name="key"
                   transfer-ownership="none"
                   nullable="1"
                   allow-none="1">
          <type name="gpointer" c:type="gpointer"/>
        </parameter>
        <parameter name="min" transfer-ownership="none">
          <type name="GObject.Value" c:type="GValue*"/>
        </parameter>
        <parameter name="max" transfer-ownership="none">
          <type name="GObject.Value" c:type="GValue*"/>
        </parameter>
      </parameters>
    </function>
    <function name="range_value_hashtable_new"
              c:identifier="grl_range_value_hashtable_new"
              moved-to="RangeValue.hashtable_new">
      <source-position filename="src/grl-range-value.h" line="44"/>
      <return-value transfer-ownership="full">
        <doc xml:space="preserve"
             filename="src/grl-range-value.c"
             line="67">a #GHashTable</doc>
        <type name="GLib.HashTable" c:type="GHashTable*">
          <type name="gpointer"/>
          <type name="RangeValue"/>
        </type>
      </return-value>
    </function>
  </namespace>
</repository>
