<?xml version="1.0"?>
<!-- This file was automatically generated from C sources - DO NOT EDIT!
To affect the contents of this file, edit the original C definitions,
and/or use gtk-doc annotations.  -->
<repository version="1.2"
            xmlns="http://www.gtk.org/introspection/core/1.0"
            xmlns:c="http://www.gtk.org/introspection/c/1.0"
            xmlns:glib="http://www.gtk.org/introspection/glib/1.0">
  <include name="GObject" version="2.0"/>
  <include name="GSSDP" version="1.0"/>
  <include name="GUPnP" version="1.0"/>
  <include name="Soup" version="2.4"/>
  <include name="libxml2" version="2.0"/>
  <package name="gupnp-av-1.0"/>
  <namespace name="GUPnPAV"
             version="1.0"
             shared-library="libgupnp-av-1.0.so.2"
             c:identifier-prefixes="GUPnP"
             c:symbol-prefixes="gupnp">
    <record name="CDSLastChangeEntry"
            c:type="GUPnPCDSLastChangeEntry"
            glib:type-name="GUPnPCDSLastChangeEntry"
            glib:get-type="gupnp_cds_last_change_entry_get_type"
            c:symbol-prefix="cds_last_change_entry">
      <doc xml:space="preserve">Opaque struct which contains information about the event.</doc>
      <method name="get_class"
              c:identifier="gupnp_cds_last_change_entry_get_class">
        <doc xml:space="preserve">Get the class of the object in this change entry. This is only
valid if gupnp_cds_last_change_entry_get_event() returns
%GUPNP_CDS_LAST_CHANGE_EVENT_OBJECT_ADDED.</doc>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">The upnp class of the object of this entry.</doc>
          <type name="utf8" c:type="const char*"/>
        </return-value>
        <parameters>
          <instance-parameter name="entry" transfer-ownership="none">
            <doc xml:space="preserve">A #GUPnPCDSLastChangeEntry</doc>
            <type name="CDSLastChangeEntry" c:type="GUPnPCDSLastChangeEntry*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_event"
              c:identifier="gupnp_cds_last_change_entry_get_event">
        <doc xml:space="preserve">Get the type of the last change entry as defined in
#GUPnPCDSLastChangeEvent.</doc>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">An event from the #GUPnPCDSLastChangeEvent or
%GUPNP_CDS_LAST_CHANGE_EVENT_INVALID if the entry is not valid.</doc>
          <type name="CDSLastChangeEvent" c:type="GUPnPCDSLastChangeEvent"/>
        </return-value>
        <parameters>
          <instance-parameter name="entry" transfer-ownership="none">
            <doc xml:space="preserve">A #GUPnPCDSLastChangeEntry</doc>
            <type name="CDSLastChangeEntry" c:type="GUPnPCDSLastChangeEntry*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_object_id"
              c:identifier="gupnp_cds_last_change_entry_get_object_id">
        <doc xml:space="preserve">Get the ID of the object in this change entry.</doc>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">The id of the object of this entry.</doc>
          <type name="utf8" c:type="const char*"/>
        </return-value>
        <parameters>
          <instance-parameter name="entry" transfer-ownership="none">
            <doc xml:space="preserve">A #GUPnPCDSLastChangeEntry</doc>
            <type name="CDSLastChangeEntry" c:type="GUPnPCDSLastChangeEntry*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_parent_id"
              c:identifier="gupnp_cds_last_change_entry_get_parent_id">
        <doc xml:space="preserve">Get the parent object id of the object in this change entry. This is only
valid if gupnp_cds_last_change_entry_get_event() returns
%GUPNP_CDS_LAST_CHANGE_EVENT_OBJECT_ADDED.</doc>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">The id of the object's parent of this entry.</doc>
          <type name="utf8" c:type="const char*"/>
        </return-value>
        <parameters>
          <instance-parameter name="entry" transfer-ownership="none">
            <doc xml:space="preserve">A #GUPnPCDSLastChangeEntry</doc>
            <type name="CDSLastChangeEntry" c:type="GUPnPCDSLastChangeEntry*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_update_id"
              c:identifier="gupnp_cds_last_change_entry_get_update_id">
        <doc xml:space="preserve">Get the update id of the last change entry.</doc>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">update id of the entry or 0 if the entry is not valid.</doc>
          <type name="guint32" c:type="guint32"/>
        </return-value>
        <parameters>
          <instance-parameter name="entry" transfer-ownership="none">
            <doc xml:space="preserve">A #GUPnPCDSLastChangeEntry</doc>
            <type name="CDSLastChangeEntry" c:type="GUPnPCDSLastChangeEntry*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="is_subtree_update"
              c:identifier="gupnp_cds_last_change_entry_is_subtree_update">
        <doc xml:space="preserve">Returns whether this entry is part of a subtree update.</doc>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">%TRUE, if the entry is part of a subtree update, %FALSE otherwise.</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <instance-parameter name="entry" transfer-ownership="none">
            <doc xml:space="preserve">A #GUPnPCDSLastChangeEntry</doc>
            <type name="CDSLastChangeEntry" c:type="GUPnPCDSLastChangeEntry*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="ref" c:identifier="gupnp_cds_last_change_entry_ref">
        <doc xml:space="preserve">Increase reference count of a #GUPnPCDSLastChangeEntry.</doc>
        <return-value transfer-ownership="full">
          <doc xml:space="preserve">The object passed in @entry.</doc>
          <type name="CDSLastChangeEntry" c:type="GUPnPCDSLastChangeEntry*"/>
        </return-value>
        <parameters>
          <instance-parameter name="entry" transfer-ownership="none">
            <doc xml:space="preserve">A #GUPnPCDSLastChangeEntry</doc>
            <type name="CDSLastChangeEntry" c:type="GUPnPCDSLastChangeEntry*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="unref" c:identifier="gupnp_cds_last_change_entry_unref">
        <doc xml:space="preserve">Decrease reference count of a #GUPnPCDSLastChangeEntry. If the reference
count drops to 0, @entry is freed.</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="entry" transfer-ownership="none">
            <doc xml:space="preserve">A #GUPnPCDSLastChangeEntry</doc>
            <type name="CDSLastChangeEntry" c:type="GUPnPCDSLastChangeEntry*"/>
          </instance-parameter>
        </parameters>
      </method>
    </record>
    <enumeration name="CDSLastChangeEvent" c:type="GUPnPCDSLastChangeEvent">
      <member name="invalid"
              value="0"
              c:identifier="GUPNP_CDS_LAST_CHANGE_EVENT_INVALID">
        <doc xml:space="preserve">Invalid #GUPnPCDSLastChangeEntry.</doc>
      </member>
      <member name="object_added"
              value="1"
              c:identifier="GUPNP_CDS_LAST_CHANGE_EVENT_OBJECT_ADDED">
        <doc xml:space="preserve">The #GUPnPCDSLastChangeEntry is
an object added event.</doc>
      </member>
      <member name="object_removed"
              value="2"
              c:identifier="GUPNP_CDS_LAST_CHANGE_EVENT_OBJECT_REMOVED">
        <doc xml:space="preserve">The #GUPnPCDSLastChangeEntry
is an object removal event.</doc>
      </member>
      <member name="object_modified"
              value="3"
              c:identifier="GUPNP_CDS_LAST_CHANGE_EVENT_OBJECT_MODIFIED">
        <doc xml:space="preserve">The #GUPnPCDSLastChangeEntry
is an object modification event.</doc>
      </member>
      <member name="st_done"
              value="4"
              c:identifier="GUPNP_CDS_LAST_CHANGE_EVENT_ST_DONE">
        <doc xml:space="preserve">The #GUPnPCDSLastChangeEntry is a
subtree update done event.</doc>
      </member>
    </enumeration>
    <class name="CDSLastChangeParser"
           c:symbol-prefix="cds_last_change_parser"
           c:type="GUPnPCDSLastChangeParser"
           parent="GObject.Object"
           glib:type-name="GUPnPCDSLastChangeParser"
           glib:get-type="gupnp_cds_last_change_parser_get_type"
           glib:type-struct="CDSLastChangeParserClass">
      <constructor name="new" c:identifier="gupnp_cds_last_change_parser_new">
        <doc xml:space="preserve">Create a new #GUPnPCDSLastChangeParser.

This parser is able to parse LastChange as defined in the
ContentDirectory:3 specification.</doc>
        <return-value transfer-ownership="full">
          <doc xml:space="preserve">A new instance of #GUPnPCDSLastChangeParser.</doc>
          <type name="CDSLastChangeParser" c:type="GUPnPCDSLastChangeParser*"/>
        </return-value>
      </constructor>
      <method name="parse"
              c:identifier="gupnp_cds_last_change_parser_parse"
              throws="1">
        <doc xml:space="preserve">Parse a LastChange XML document in the flavor defined by the
ContentDirectory:3 specification.</doc>
        <return-value transfer-ownership="full">
          <doc xml:space="preserve">
List of #GUPnPCDSLastChangeEntry&lt;!-- --&gt;s</doc>
          <type name="GLib.List" c:type="GList*">
            <type name="CDSLastChangeEntry"/>
          </type>
        </return-value>
        <parameters>
          <instance-parameter name="parser" transfer-ownership="none">
            <doc xml:space="preserve">#GUPnPCDSLastChangeParser</doc>
            <type name="CDSLastChangeParser"
                  c:type="GUPnPCDSLastChangeParser*"/>
          </instance-parameter>
          <parameter name="last_change" transfer-ownership="none">
            <doc xml:space="preserve">XML string to parse</doc>
            <type name="utf8" c:type="const char*"/>
          </parameter>
        </parameters>
      </method>
      <field name="parent">
        <type name="GObject.Object" c:type="GObject"/>
      </field>
      <field name="priv">
        <type name="CDSLastChangeParserPrivate"
              c:type="GUPnPCDSLastChangeParserPrivate*"/>
      </field>
    </class>
    <record name="CDSLastChangeParserClass"
            c:type="GUPnPCDSLastChangeParserClass"
            glib:is-gtype-struct-for="CDSLastChangeParser">
      <field name="parent_class">
        <type name="GObject.ObjectClass" c:type="GObjectClass"/>
      </field>
    </record>
    <record name="CDSLastChangeParserPrivate"
            c:type="GUPnPCDSLastChangeParserPrivate"
            disguised="1">
    </record>
    <class name="DIDLLiteContainer"
           c:symbol-prefix="didl_lite_container"
           c:type="GUPnPDIDLLiteContainer"
           parent="DIDLLiteObject"
           glib:type-name="GUPnPDIDLLiteContainer"
           glib:get-type="gupnp_didl_lite_container_get_type"
           glib:type-struct="DIDLLiteContainerClass">
      <method name="add_create_class"
              c:identifier="gupnp_didl_lite_container_add_create_class">
        <doc xml:space="preserve">Add a new create class to the @container. includeDerived defaults to "0".</doc>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">None.</doc>
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="container" transfer-ownership="none">
            <doc xml:space="preserve">#GUPnPDIDLLiteContainer</doc>
            <type name="DIDLLiteContainer" c:type="GUPnPDIDLLiteContainer*"/>
          </instance-parameter>
          <parameter name="create_class" transfer-ownership="none">
            <doc xml:space="preserve">The createClass to add.</doc>
            <type name="utf8" c:type="const char*"/>
          </parameter>
        </parameters>
      </method>
      <method name="add_create_class_full"
              c:identifier="gupnp_didl_lite_container_add_create_class_full">
        <doc xml:space="preserve">Add a new create class to the @container.</doc>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">None.</doc>
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="container" transfer-ownership="none">
            <doc xml:space="preserve">#GUPnPDIDLLiteContainer</doc>
            <type name="DIDLLiteContainer" c:type="GUPnPDIDLLiteContainer*"/>
          </instance-parameter>
          <parameter name="create_class" transfer-ownership="none">
            <doc xml:space="preserve">The createClass to add.</doc>
            <type name="utf8" c:type="const char*"/>
          </parameter>
          <parameter name="include_derived" transfer-ownership="none">
            <doc xml:space="preserve">Whether object with dervied classes may be created in
this container or not.</doc>
            <type name="gboolean" c:type="gboolean"/>
          </parameter>
        </parameters>
      </method>
      <method name="add_search_class"
              c:identifier="gupnp_didl_lite_container_add_search_class">
        <doc xml:space="preserve">Add a new search class to the @container.</doc>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">None.</doc>
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="container" transfer-ownership="none">
            <doc xml:space="preserve">#GUPnPDIDLLiteContainer</doc>
            <type name="DIDLLiteContainer" c:type="GUPnPDIDLLiteContainer*"/>
          </instance-parameter>
          <parameter name="search_class" transfer-ownership="none">
            <doc xml:space="preserve">The searchClass to add.</doc>
            <type name="utf8" c:type="const char*"/>
          </parameter>
        </parameters>
      </method>
      <method name="add_search_class_full"
              c:identifier="gupnp_didl_lite_container_add_search_class_full">
        <doc xml:space="preserve">Add a new search class to the @container.</doc>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">None.</doc>
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="container" transfer-ownership="none">
            <doc xml:space="preserve">#GUPnPDIDLLiteContainer</doc>
            <type name="DIDLLiteContainer" c:type="GUPnPDIDLLiteContainer*"/>
          </instance-parameter>
          <parameter name="search_class" transfer-ownership="none">
            <doc xml:space="preserve">The searchClass to add.</doc>
            <type name="utf8" c:type="const char*"/>
          </parameter>
          <parameter name="include_derived" transfer-ownership="none">
            <doc xml:space="preserve">includeDerived attribute of the DIDL</doc>
            <type name="gboolean" c:type="gboolean"/>
          </parameter>
        </parameters>
      </method>
      <method name="container_update_id_is_set"
              c:identifier="gupnp_didl_lite_container_container_update_id_is_set">
        <doc xml:space="preserve">Get whether the container update ID of the @container is set.</doc>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">%TRUE if update ID is set, otherwise %FALSE</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <instance-parameter name="container" transfer-ownership="none">
            <doc xml:space="preserve">#GUPnPDIDLLiteContainer</doc>
            <type name="DIDLLiteContainer" c:type="GUPnPDIDLLiteContainer*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_child_count"
              c:identifier="gupnp_didl_lite_container_get_child_count">
        <doc xml:space="preserve">Get the child count of the @container.  If the child count is unknown, -1 is
returned.</doc>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">The child count of the @container, or -1 if it is unknown.</doc>
          <type name="gint" c:type="gint"/>
        </return-value>
        <parameters>
          <instance-parameter name="container" transfer-ownership="none">
            <doc xml:space="preserve">#GUPnPDIDLLiteContainer</doc>
            <type name="DIDLLiteContainer" c:type="GUPnPDIDLLiteContainer*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_container_update_id"
              c:identifier="gupnp_didl_lite_container_get_container_update_id">
        <doc xml:space="preserve">Get the container update ID of the @container.</doc>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">The container update ID of the @container.</doc>
          <type name="guint" c:type="guint"/>
        </return-value>
        <parameters>
          <instance-parameter name="container" transfer-ownership="none">
            <doc xml:space="preserve">#GUPnPDIDLLiteContainer</doc>
            <type name="DIDLLiteContainer" c:type="GUPnPDIDLLiteContainer*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_create_classes"
              c:identifier="gupnp_didl_lite_container_get_create_classes">
        <doc xml:space="preserve">Gets the list of create classes of the @container.</doc>
        <return-value transfer-ownership="full">
          <doc xml:space="preserve">The list of create classes
belonging to @container, or %NULL.
#g_list_free the returned list after usage and #g_free each string in it.</doc>
          <type name="GLib.List" c:type="GList*">
            <type name="utf8"/>
          </type>
        </return-value>
        <parameters>
          <instance-parameter name="container" transfer-ownership="none">
            <doc xml:space="preserve">#GUPnPDIDLLiteContainer</doc>
            <type name="DIDLLiteContainer" c:type="GUPnPDIDLLiteContainer*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_create_classes_full"
              c:identifier="gupnp_didl_lite_container_get_create_classes_full">
        <doc xml:space="preserve">Gets the list of create classes of the @container.</doc>
        <return-value transfer-ownership="full">
          <doc xml:space="preserve">The list
of create classes belonging to @container, or %NULL.
#g_list_free the returned list after usage and unref each object in it.</doc>
          <type name="GLib.List" c:type="GList*">
            <type name="DIDLLiteCreateClass"/>
          </type>
        </return-value>
        <parameters>
          <instance-parameter name="container" transfer-ownership="none">
            <doc xml:space="preserve">#GUPnPDIDLLiteContainer</doc>
            <type name="DIDLLiteContainer" c:type="GUPnPDIDLLiteContainer*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_search_classes"
              c:identifier="gupnp_didl_lite_container_get_search_classes">
        <doc xml:space="preserve">Gets the list of search classes of the @container.</doc>
        <return-value transfer-ownership="full">
          <doc xml:space="preserve">The list of search classes
belonging to @container, or %NULL. #g_list_free the returned list after usage
and #g_free each string in it.</doc>
          <type name="GLib.List" c:type="GList*">
            <type name="utf8"/>
          </type>
        </return-value>
        <parameters>
          <instance-parameter name="container" transfer-ownership="none">
            <doc xml:space="preserve">#GUPnPDIDLLiteContainer</doc>
            <type name="DIDLLiteContainer" c:type="GUPnPDIDLLiteContainer*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_searchable"
              c:identifier="gupnp_didl_lite_container_get_searchable">
        <doc xml:space="preserve">Checks whether @container is searchable.</doc>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">#TRUE if @container is searchable.</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <instance-parameter name="container" transfer-ownership="none">
            <doc xml:space="preserve">#GUPnPDIDLLiteContainer</doc>
            <type name="DIDLLiteContainer" c:type="GUPnPDIDLLiteContainer*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_storage_used"
              c:identifier="gupnp_didl_lite_container_get_storage_used">
        <doc xml:space="preserve">Get the number of bytes used by all child items of the @container.
If storage used is unknown, -1 is returned.</doc>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">The number of bytes used by all children of the @container,
or -1 if it is unknown.</doc>
          <type name="gint64" c:type="gint64"/>
        </return-value>
        <parameters>
          <instance-parameter name="container" transfer-ownership="none">
            <doc xml:space="preserve">#GUPnPDIDLLiteContainer</doc>
            <type name="DIDLLiteContainer" c:type="GUPnPDIDLLiteContainer*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_total_deleted_child_count"
              c:identifier="gupnp_didl_lite_container_get_total_deleted_child_count">
        <doc xml:space="preserve">Get the total deleted child count of the @container.</doc>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">The total deleted child count of the @container.</doc>
          <type name="guint" c:type="guint"/>
        </return-value>
        <parameters>
          <instance-parameter name="container" transfer-ownership="none">
            <doc xml:space="preserve">#GUPnPDIDLLiteContainer</doc>
            <type name="DIDLLiteContainer" c:type="GUPnPDIDLLiteContainer*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="set_child_count"
              c:identifier="gupnp_didl_lite_container_set_child_count">
        <doc xml:space="preserve">Set the child count of the @container.</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="container" transfer-ownership="none">
            <doc xml:space="preserve">#GUPnPDIDLLiteContainer</doc>
            <type name="DIDLLiteContainer" c:type="GUPnPDIDLLiteContainer*"/>
          </instance-parameter>
          <parameter name="child_count" transfer-ownership="none">
            <doc xml:space="preserve">The child count</doc>
            <type name="gint" c:type="gint"/>
          </parameter>
        </parameters>
      </method>
      <method name="set_container_update_id"
              c:identifier="gupnp_didl_lite_container_set_container_update_id">
        <doc xml:space="preserve">Set the container update ID of the @container.</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="container" transfer-ownership="none">
            <doc xml:space="preserve">#GUPnPDIDLLiteContainer</doc>
            <type name="DIDLLiteContainer" c:type="GUPnPDIDLLiteContainer*"/>
          </instance-parameter>
          <parameter name="update_id" transfer-ownership="none">
            <doc xml:space="preserve">The container update ID</doc>
            <type name="guint" c:type="guint"/>
          </parameter>
        </parameters>
      </method>
      <method name="set_searchable"
              c:identifier="gupnp_didl_lite_container_set_searchable">
        <doc xml:space="preserve">(Un)set the searchibility of @container.</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="container" transfer-ownership="none">
            <doc xml:space="preserve">#GUPnPDIDLLiteContainer</doc>
            <type name="DIDLLiteContainer" c:type="GUPnPDIDLLiteContainer*"/>
          </instance-parameter>
          <parameter name="searchable" transfer-ownership="none">
            <doc xml:space="preserve">The searchibility</doc>
            <type name="gboolean" c:type="gboolean"/>
          </parameter>
        </parameters>
      </method>
      <method name="set_storage_used"
              c:identifier="gupnp_didl_lite_container_set_storage_used">
        <doc xml:space="preserve">Set the number of bytes used by all child items of the @container.</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="container" transfer-ownership="none">
            <doc xml:space="preserve">#GUPnPDIDLLiteContainer</doc>
            <type name="DIDLLiteContainer" c:type="GUPnPDIDLLiteContainer*"/>
          </instance-parameter>
          <parameter name="storage_used" transfer-ownership="none">
            <doc xml:space="preserve">The number of bytes used by all child items of the
               @container or -1 if unknown.</doc>
            <type name="gint64" c:type="gint64"/>
          </parameter>
        </parameters>
      </method>
      <method name="set_total_deleted_child_count"
              c:identifier="gupnp_didl_lite_container_set_total_deleted_child_count">
        <doc xml:space="preserve">Set the container update ID of the @container.</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="container" transfer-ownership="none">
            <doc xml:space="preserve">#GUPnPDIDLLiteContainer</doc>
            <type name="DIDLLiteContainer" c:type="GUPnPDIDLLiteContainer*"/>
          </instance-parameter>
          <parameter name="count" transfer-ownership="none">
            <doc xml:space="preserve">The container update ID</doc>
            <type name="guint" c:type="guint"/>
          </parameter>
        </parameters>
      </method>
      <method name="total_deleted_child_count_is_set"
              c:identifier="gupnp_didl_lite_container_total_deleted_child_count_is_set">
        <doc xml:space="preserve">Get whether the total deleted child conut of the @container is set.</doc>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">%TRUE if property is set, otherwise %FALSE</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <instance-parameter name="container" transfer-ownership="none">
            <doc xml:space="preserve">#GUPnPDIDLLiteContainer</doc>
            <type name="DIDLLiteContainer" c:type="GUPnPDIDLLiteContainer*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="unset_container_update_id"
              c:identifier="gupnp_didl_lite_container_unset_container_update_id">
        <doc xml:space="preserve">Unset the container update ID property of the @container.</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="container" transfer-ownership="none">
            <doc xml:space="preserve">#GUPnPDIDLLiteContainer</doc>
            <type name="DIDLLiteContainer" c:type="GUPnPDIDLLiteContainer*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="unset_total_deleted_child_count"
              c:identifier="gupnp_didl_lite_container_unset_total_deleted_child_count">
        <doc xml:space="preserve">Unset the total deleted child count property of the @container.</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="container" transfer-ownership="none">
            <doc xml:space="preserve">#GUPnPDIDLLiteContainer</doc>
            <type name="DIDLLiteContainer" c:type="GUPnPDIDLLiteContainer*"/>
          </instance-parameter>
        </parameters>
      </method>
      <property name="child-count" writable="1" transfer-ownership="none">
        <doc xml:space="preserve">The child count of this container.</doc>
        <type name="gint" c:type="gint"/>
      </property>
      <property name="container-update-id"
                writable="1"
                transfer-ownership="none">
        <doc xml:space="preserve">Update ID of this container.</doc>
        <type name="guint" c:type="guint"/>
      </property>
      <property name="searchable" writable="1" transfer-ownership="none">
        <doc xml:space="preserve">Whether this container is searchable.</doc>
        <type name="gboolean" c:type="gboolean"/>
      </property>
      <property name="storage-used" writable="1" transfer-ownership="none">
        <doc xml:space="preserve">The number of bytes used by all child items of this container.</doc>
        <type name="gint64" c:type="gint64"/>
      </property>
      <property name="total-deleted-child-count"
                writable="1"
                transfer-ownership="none">
        <doc xml:space="preserve">Total deleted child count of this container.</doc>
        <type name="guint" c:type="guint"/>
      </property>
      <field name="parent">
        <type name="DIDLLiteObject" c:type="GUPnPDIDLLiteObject"/>
      </field>
    </class>
    <record name="DIDLLiteContainerClass"
            c:type="GUPnPDIDLLiteContainerClass"
            glib:is-gtype-struct-for="DIDLLiteContainer">
      <field name="parent_class">
        <type name="DIDLLiteObjectClass" c:type="GUPnPDIDLLiteObjectClass"/>
      </field>
      <field name="_gupnp_reserved1" introspectable="0">
        <callback name="_gupnp_reserved1">
          <return-value transfer-ownership="none">
            <type name="none" c:type="void"/>
          </return-value>
        </callback>
      </field>
      <field name="_gupnp_reserved2" introspectable="0">
        <callback name="_gupnp_reserved2">
          <return-value transfer-ownership="none">
            <type name="none" c:type="void"/>
          </return-value>
        </callback>
      </field>
      <field name="_gupnp_reserved3" introspectable="0">
        <callback name="_gupnp_reserved3">
          <return-value transfer-ownership="none">
            <type name="none" c:type="void"/>
          </return-value>
        </callback>
      </field>
      <field name="_gupnp_reserved4" introspectable="0">
        <callback name="_gupnp_reserved4">
          <return-value transfer-ownership="none">
            <type name="none" c:type="void"/>
          </return-value>
        </callback>
      </field>
    </record>
    <class name="DIDLLiteContributor"
           c:symbol-prefix="didl_lite_contributor"
           c:type="GUPnPDIDLLiteContributor"
           parent="GObject.Object"
           glib:type-name="GUPnPDIDLLiteContributor"
           glib:get-type="gupnp_didl_lite_contributor_get_type"
           glib:type-struct="DIDLLiteContributorClass">
      <method name="get_name"
              c:identifier="gupnp_didl_lite_contributor_get_name">
        <doc xml:space="preserve">Get the name of the @contributor.</doc>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">The name of the @contributor or %NULL.</doc>
          <type name="utf8" c:type="const char*"/>
        </return-value>
        <parameters>
          <instance-parameter name="contributor" transfer-ownership="none">
            <doc xml:space="preserve">A #GUPnPDIDLLiteContributor</doc>
            <type name="DIDLLiteContributor"
                  c:type="GUPnPDIDLLiteContributor*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_role"
              c:identifier="gupnp_didl_lite_contributor_get_role">
        <doc xml:space="preserve">Get the role of the @contributor.</doc>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">The role of the @contributor, or %NULL.</doc>
          <type name="utf8" c:type="const char*"/>
        </return-value>
        <parameters>
          <instance-parameter name="contributor" transfer-ownership="none">
            <doc xml:space="preserve">#GUPnPDIDLLiteContributor</doc>
            <type name="DIDLLiteContributor"
                  c:type="GUPnPDIDLLiteContributor*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_xml_node"
              c:identifier="gupnp_didl_lite_contributor_get_xml_node">
        <doc xml:space="preserve">Get the pointer to relevant node in XML document.</doc>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">The pointer to relevant node in XML document.</doc>
          <type name="libxml2.Node" c:type="xmlNode*"/>
        </return-value>
        <parameters>
          <instance-parameter name="contributor" transfer-ownership="none">
            <doc xml:space="preserve">The #GUPnPDIDLLiteContributor</doc>
            <type name="DIDLLiteContributor"
                  c:type="GUPnPDIDLLiteContributor*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="set_name"
              c:identifier="gupnp_didl_lite_contributor_set_name">
        <doc xml:space="preserve">Set the name of the @contributor to @name.</doc>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">None.</doc>
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="contributor" transfer-ownership="none">
            <doc xml:space="preserve">A #GUPnPDIDLLiteContributor</doc>
            <type name="DIDLLiteContributor"
                  c:type="GUPnPDIDLLiteContributor*"/>
          </instance-parameter>
          <parameter name="name" transfer-ownership="none">
            <doc xml:space="preserve">The name of the contributor</doc>
            <type name="utf8" c:type="const char*"/>
          </parameter>
        </parameters>
      </method>
      <method name="set_role"
              c:identifier="gupnp_didl_lite_contributor_set_role">
        <doc xml:space="preserve">Set the role of the @contributor to @role.</doc>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">None.</doc>
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="contributor" transfer-ownership="none">
            <doc xml:space="preserve">#GUPnPDIDLLiteContributor</doc>
            <type name="DIDLLiteContributor"
                  c:type="GUPnPDIDLLiteContributor*"/>
          </instance-parameter>
          <parameter name="role" transfer-ownership="none">
            <doc xml:space="preserve">The role of the @contributor</doc>
            <type name="utf8" c:type="const char*"/>
          </parameter>
        </parameters>
      </method>
      <property name="name" writable="1" transfer-ownership="none">
        <doc xml:space="preserve">The name of this contributor.</doc>
        <type name="utf8" c:type="gchar*"/>
      </property>
      <property name="role" writable="1" transfer-ownership="none">
        <doc xml:space="preserve">The role of this contributor.</doc>
        <type name="utf8" c:type="gchar*"/>
      </property>
      <property name="xml-doc"
                stability="Private"
                readable="0"
                writable="1"
                construct-only="1"
                transfer-ownership="none">
        <doc xml:space="preserve">The reference to XML document containing this object.

Internal property.</doc>
        <type name="GUPnP.XMLDoc"/>
      </property>
      <property name="xml-node"
                writable="1"
                construct-only="1"
                transfer-ownership="none">
        <doc xml:space="preserve">The pointer to object node in XML document.</doc>
        <type name="gpointer" c:type="gpointer"/>
      </property>
      <field name="parent">
        <type name="GObject.Object" c:type="GObject"/>
      </field>
      <field name="priv">
        <type name="DIDLLiteContributorPrivate"
              c:type="GUPnPDIDLLiteContributorPrivate*"/>
      </field>
    </class>
    <record name="DIDLLiteContributorClass"
            c:type="GUPnPDIDLLiteContributorClass"
            glib:is-gtype-struct-for="DIDLLiteContributor">
      <field name="parent_class">
        <type name="GObject.ObjectClass" c:type="GObjectClass"/>
      </field>
      <field name="_gupnp_reserved1" introspectable="0">
        <callback name="_gupnp_reserved1">
          <return-value transfer-ownership="none">
            <type name="none" c:type="void"/>
          </return-value>
        </callback>
      </field>
      <field name="_gupnp_reserved2" introspectable="0">
        <callback name="_gupnp_reserved2">
          <return-value transfer-ownership="none">
            <type name="none" c:type="void"/>
          </return-value>
        </callback>
      </field>
      <field name="_gupnp_reserved3" introspectable="0">
        <callback name="_gupnp_reserved3">
          <return-value transfer-ownership="none">
            <type name="none" c:type="void"/>
          </return-value>
        </callback>
      </field>
      <field name="_gupnp_reserved4" introspectable="0">
        <callback name="_gupnp_reserved4">
          <return-value transfer-ownership="none">
            <type name="none" c:type="void"/>
          </return-value>
        </callback>
      </field>
    </record>
    <record name="DIDLLiteContributorPrivate"
            c:type="GUPnPDIDLLiteContributorPrivate"
            disguised="1">
    </record>
    <class name="DIDLLiteCreateClass"
           c:symbol-prefix="didl_lite_create_class"
           c:type="GUPnPDIDLLiteCreateClass"
           parent="GObject.Object"
           glib:type-name="GUPnPDIDLLiteCreateClass"
           glib:get-type="gupnp_didl_lite_create_class_get_type"
           glib:type-struct="DIDLLiteCreateClassClass">
      <method name="get_content"
              c:identifier="gupnp_didl_lite_create_class_get_content">
        <doc xml:space="preserve">Get the content of the @create_class.</doc>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">The Content of the @create_class, or %NULL.</doc>
          <type name="utf8" c:type="const char*"/>
        </return-value>
        <parameters>
          <instance-parameter name="create_class" transfer-ownership="none">
            <doc xml:space="preserve">#GUPnPDIDLLiteCreateClass</doc>
            <type name="DIDLLiteCreateClass"
                  c:type="GUPnPDIDLLiteCreateClass*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_friendly_name"
              c:identifier="gupnp_didl_lite_create_class_get_friendly_name">
        <doc xml:space="preserve">Get the friendly name of the @create_class.</doc>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">The FriendlyName of the @create_class, or %NULL.</doc>
          <type name="utf8" c:type="const char*"/>
        </return-value>
        <parameters>
          <instance-parameter name="create_class" transfer-ownership="none">
            <doc xml:space="preserve">#GUPnPDIDLLiteCreateClass</doc>
            <type name="DIDLLiteCreateClass"
                  c:type="GUPnPDIDLLiteCreateClass*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_include_derived"
              c:identifier="gupnp_didl_lite_create_class_get_include_derived">
        <doc xml:space="preserve">Checks whether @create_class can be derived.</doc>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">#TRUE if @create_class can be derived.</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <instance-parameter name="create_class" transfer-ownership="none">
            <doc xml:space="preserve">#GUPnPDIDLLiteCreateClass</doc>
            <type name="DIDLLiteCreateClass"
                  c:type="GUPnPDIDLLiteCreateClass*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_xml_node"
              c:identifier="gupnp_didl_lite_create_class_get_xml_node">
        <doc xml:space="preserve">Get the pointer to relevant node in XML document.</doc>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">The pointer to relevant node in XML document.</doc>
          <type name="libxml2.Node" c:type="xmlNode*"/>
        </return-value>
        <parameters>
          <instance-parameter name="create_class" transfer-ownership="none">
            <doc xml:space="preserve">The #GUPnPDIDLLiteCreateClass</doc>
            <type name="DIDLLiteCreateClass"
                  c:type="GUPnPDIDLLiteCreateClass*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="set_content"
              c:identifier="gupnp_didl_lite_create_class_set_content">
        <doc xml:space="preserve">Set the content of the @create_class.</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="create_class" transfer-ownership="none">
            <doc xml:space="preserve">#GUPnPDIDLLiteCreateClass</doc>
            <type name="DIDLLiteCreateClass"
                  c:type="GUPnPDIDLLiteCreateClass*"/>
          </instance-parameter>
          <parameter name="content" transfer-ownership="none">
            <doc xml:space="preserve">The content</doc>
            <type name="utf8" c:type="const char*"/>
          </parameter>
        </parameters>
      </method>
      <method name="set_friendly_name"
              c:identifier="gupnp_didl_lite_create_class_set_friendly_name">
        <doc xml:space="preserve">Set the friendly name of the @create_class.</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="create_class" transfer-ownership="none">
            <doc xml:space="preserve">#GUPnPDIDLLiteCreateClass</doc>
            <type name="DIDLLiteCreateClass"
                  c:type="GUPnPDIDLLiteCreateClass*"/>
          </instance-parameter>
          <parameter name="friendly_name" transfer-ownership="none">
            <doc xml:space="preserve">The friendly name</doc>
            <type name="utf8" c:type="const char*"/>
          </parameter>
        </parameters>
      </method>
      <method name="set_include_derived"
              c:identifier="gupnp_didl_lite_create_class_set_include_derived">
        <doc xml:space="preserve">(Un)set the derivability of create_class.</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="create_class" transfer-ownership="none">
            <doc xml:space="preserve">#GUPnPDIDLLiteCreateClass</doc>
            <type name="DIDLLiteCreateClass"
                  c:type="GUPnPDIDLLiteCreateClass*"/>
          </instance-parameter>
          <parameter name="include_derived" transfer-ownership="none">
            <doc xml:space="preserve">the derivability</doc>
            <type name="gboolean" c:type="gboolean"/>
          </parameter>
        </parameters>
      </method>
      <property name="content" writable="1" transfer-ownership="none">
        <doc xml:space="preserve">The content of this create Class.</doc>
        <type name="utf8" c:type="gchar*"/>
      </property>
      <property name="friendly-name" writable="1" transfer-ownership="none">
        <doc xml:space="preserve">The friendly name of this create Class.</doc>
        <type name="utf8" c:type="gchar*"/>
      </property>
      <property name="include-derived" writable="1" transfer-ownership="none">
        <doc xml:space="preserve">Whether this create Class can be derived.</doc>
        <type name="gboolean" c:type="gboolean"/>
      </property>
      <property name="xml-doc"
                stability="Private"
                readable="0"
                writable="1"
                construct-only="1"
                transfer-ownership="none">
        <doc xml:space="preserve">The reference to XML document containing this object.

Internal property.</doc>
        <type name="GUPnP.XMLDoc"/>
      </property>
      <property name="xml-node"
                writable="1"
                construct-only="1"
                transfer-ownership="none">
        <doc xml:space="preserve">The pointer to desc node in XML document.</doc>
        <type name="gpointer" c:type="gpointer"/>
      </property>
      <field name="parent">
        <type name="GObject.Object" c:type="GObject"/>
      </field>
      <field name="priv" readable="0" private="1">
        <type name="DIDLLiteCreateClassPrivate"
              c:type="GUPnPDIDLLiteCreateClassPrivate*"/>
      </field>
    </class>
    <record name="DIDLLiteCreateClassClass"
            c:type="GUPnPDIDLLiteCreateClassClass"
            glib:is-gtype-struct-for="DIDLLiteCreateClass">
      <field name="parent_class">
        <type name="GObject.ObjectClass" c:type="GObjectClass"/>
      </field>
      <field name="_gupnp_reserved1" introspectable="0">
        <callback name="_gupnp_reserved1">
          <return-value transfer-ownership="none">
            <type name="none" c:type="void"/>
          </return-value>
        </callback>
      </field>
      <field name="_gupnp_reserved2" introspectable="0">
        <callback name="_gupnp_reserved2">
          <return-value transfer-ownership="none">
            <type name="none" c:type="void"/>
          </return-value>
        </callback>
      </field>
      <field name="_gupnp_reserved3" introspectable="0">
        <callback name="_gupnp_reserved3">
          <return-value transfer-ownership="none">
            <type name="none" c:type="void"/>
          </return-value>
        </callback>
      </field>
      <field name="_gupnp_reserved4" introspectable="0">
        <callback name="_gupnp_reserved4">
          <return-value transfer-ownership="none">
            <type name="none" c:type="void"/>
          </return-value>
        </callback>
      </field>
    </record>
    <record name="DIDLLiteCreateClassPrivate"
            c:type="GUPnPDIDLLiteCreateClassPrivate"
            disguised="1">
    </record>
    <class name="DIDLLiteDescriptor"
           c:symbol-prefix="didl_lite_descriptor"
           c:type="GUPnPDIDLLiteDescriptor"
           parent="GObject.Object"
           glib:type-name="GUPnPDIDLLiteDescriptor"
           glib:get-type="gupnp_didl_lite_descriptor_get_type"
           glib:type-struct="DIDLLiteDescriptorClass">
      <method name="get_content"
              c:identifier="gupnp_didl_lite_descriptor_get_content">
        <doc xml:space="preserve">Get the content of the @descriptor.</doc>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">The content of the @descriptor or %NULL.</doc>
          <type name="utf8" c:type="const char*"/>
        </return-value>
        <parameters>
          <instance-parameter name="descriptor" transfer-ownership="none">
            <doc xml:space="preserve">A #GUPnPDIDLLiteDescriptor</doc>
            <type name="DIDLLiteDescriptor" c:type="GUPnPDIDLLiteDescriptor*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_id" c:identifier="gupnp_didl_lite_descriptor_get_id">
        <doc xml:space="preserve">Get the ID of the @descriptor.</doc>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">The ID string or %NULL.</doc>
          <type name="utf8" c:type="const char*"/>
        </return-value>
        <parameters>
          <instance-parameter name="descriptor" transfer-ownership="none">
            <doc xml:space="preserve">A #GUPnPDIDLLiteDescriptor</doc>
            <type name="DIDLLiteDescriptor" c:type="GUPnPDIDLLiteDescriptor*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_metadata_type"
              c:identifier="gupnp_didl_lite_descriptor_get_metadata_type">
        <doc xml:space="preserve">Get the metadata type of the @descriptor.</doc>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">The type as string or %NULL.</doc>
          <type name="utf8" c:type="const char*"/>
        </return-value>
        <parameters>
          <instance-parameter name="descriptor" transfer-ownership="none">
            <doc xml:space="preserve">A #GUPnPDIDLLiteDescriptor</doc>
            <type name="DIDLLiteDescriptor" c:type="GUPnPDIDLLiteDescriptor*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_name_space"
              c:identifier="gupnp_didl_lite_descriptor_get_name_space">
        <doc xml:space="preserve">Get the name space associated with the @descriptor.</doc>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">The name space or %NULL.</doc>
          <type name="utf8" c:type="const char*"/>
        </return-value>
        <parameters>
          <instance-parameter name="descriptor" transfer-ownership="none">
            <doc xml:space="preserve">A #GUPnPDIDLLiteDescriptor</doc>
            <type name="DIDLLiteDescriptor" c:type="GUPnPDIDLLiteDescriptor*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_xml_node"
              c:identifier="gupnp_didl_lite_descriptor_get_xml_node">
        <doc xml:space="preserve">Get the pointer to desc node in XML document.</doc>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">The pointer to desc node in XML document.</doc>
          <type name="libxml2.Node" c:type="xmlNode*"/>
        </return-value>
        <parameters>
          <instance-parameter name="descriptor" transfer-ownership="none">
            <doc xml:space="preserve">The #GUPnPDIDLLiteDescriptor</doc>
            <type name="DIDLLiteDescriptor" c:type="GUPnPDIDLLiteDescriptor*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="set_content"
              c:identifier="gupnp_didl_lite_descriptor_set_content">
        <doc xml:space="preserve">Set the content of the @descriptor.</doc>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">None.</doc>
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="descriptor" transfer-ownership="none">
            <doc xml:space="preserve">A #GUPnPDIDLLiteDescriptor</doc>
            <type name="DIDLLiteDescriptor" c:type="GUPnPDIDLLiteDescriptor*"/>
          </instance-parameter>
          <parameter name="content" transfer-ownership="none">
            <doc xml:space="preserve">The content as string</doc>
            <type name="utf8" c:type="const char*"/>
          </parameter>
        </parameters>
      </method>
      <method name="set_id" c:identifier="gupnp_didl_lite_descriptor_set_id">
        <doc xml:space="preserve">Set the ID of the @descriptor.</doc>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">None.</doc>
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="descriptor" transfer-ownership="none">
            <doc xml:space="preserve">A #GUPnPDIDLLiteDescriptor</doc>
            <type name="DIDLLiteDescriptor" c:type="GUPnPDIDLLiteDescriptor*"/>
          </instance-parameter>
          <parameter name="id" transfer-ownership="none">
            <doc xml:space="preserve">The ID as string</doc>
            <type name="utf8" c:type="const char*"/>
          </parameter>
        </parameters>
      </method>
      <method name="set_metadata_type"
              c:identifier="gupnp_didl_lite_descriptor_set_metadata_type">
        <doc xml:space="preserve">Set the metadata type of the @descriptor.</doc>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">None.</doc>
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="descriptor" transfer-ownership="none">
            <doc xml:space="preserve">A #GUPnPDIDLLiteDescriptor</doc>
            <type name="DIDLLiteDescriptor" c:type="GUPnPDIDLLiteDescriptor*"/>
          </instance-parameter>
          <parameter name="type" transfer-ownership="none">
            <doc xml:space="preserve">The metadata type as string</doc>
            <type name="utf8" c:type="const char*"/>
          </parameter>
        </parameters>
      </method>
      <method name="set_name_space"
              c:identifier="gupnp_didl_lite_descriptor_set_name_space">
        <doc xml:space="preserve">Set the name space associated with the @descriptor.</doc>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">None.</doc>
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="descriptor" transfer-ownership="none">
            <doc xml:space="preserve">A #GUPnPDIDLLiteDescriptor</doc>
            <type name="DIDLLiteDescriptor" c:type="GUPnPDIDLLiteDescriptor*"/>
          </instance-parameter>
          <parameter name="name_space" transfer-ownership="none">
            <doc xml:space="preserve">The name space URI as string</doc>
            <type name="utf8" c:type="const char*"/>
          </parameter>
        </parameters>
      </method>
      <property name="content" writable="1" transfer-ownership="none">
        <doc xml:space="preserve">The content of this descriptor.</doc>
        <type name="utf8" c:type="gchar*"/>
      </property>
      <property name="id" writable="1" transfer-ownership="none">
        <doc xml:space="preserve">The ID of this descriptor.</doc>
        <type name="utf8" c:type="gchar*"/>
      </property>
      <property name="metadata-type" writable="1" transfer-ownership="none">
        <doc xml:space="preserve">The type of this descriptor.</doc>
        <type name="utf8" c:type="gchar*"/>
      </property>
      <property name="name-space" writable="1" transfer-ownership="none">
        <doc xml:space="preserve">The name space associated with this descriptor.</doc>
        <type name="utf8" c:type="gchar*"/>
      </property>
      <property name="xml-doc"
                stability="Private"
                readable="0"
                writable="1"
                construct-only="1"
                transfer-ownership="none">
        <doc xml:space="preserve">The reference to XML document containing this object.

Internal property.</doc>
        <type name="GUPnP.XMLDoc"/>
      </property>
      <property name="xml-node"
                writable="1"
                construct-only="1"
                transfer-ownership="none">
        <doc xml:space="preserve">The pointer to desc node in XML document.</doc>
        <type name="gpointer" c:type="gpointer"/>
      </property>
      <field name="parent">
        <type name="GObject.Object" c:type="GObject"/>
      </field>
      <field name="priv">
        <type name="DIDLLiteDescriptorPrivate"
              c:type="GUPnPDIDLLiteDescriptorPrivate*"/>
      </field>
    </class>
    <record name="DIDLLiteDescriptorClass"
            c:type="GUPnPDIDLLiteDescriptorClass"
            glib:is-gtype-struct-for="DIDLLiteDescriptor">
      <field name="parent_class">
        <type name="GObject.ObjectClass" c:type="GObjectClass"/>
      </field>
      <field name="_gupnp_reserved1" introspectable="0">
        <callback name="_gupnp_reserved1">
          <return-value transfer-ownership="none">
            <type name="none" c:type="void"/>
          </return-value>
        </callback>
      </field>
      <field name="_gupnp_reserved2" introspectable="0">
        <callback name="_gupnp_reserved2">
          <return-value transfer-ownership="none">
            <type name="none" c:type="void"/>
          </return-value>
        </callback>
      </field>
      <field name="_gupnp_reserved3" introspectable="0">
        <callback name="_gupnp_reserved3">
          <return-value transfer-ownership="none">
            <type name="none" c:type="void"/>
          </return-value>
        </callback>
      </field>
      <field name="_gupnp_reserved4" introspectable="0">
        <callback name="_gupnp_reserved4">
          <return-value transfer-ownership="none">
            <type name="none" c:type="void"/>
          </return-value>
        </callback>
      </field>
    </record>
    <record name="DIDLLiteDescriptorPrivate"
            c:type="GUPnPDIDLLiteDescriptorPrivate"
            disguised="1">
    </record>
    <enumeration name="DIDLLiteFragmentResult"
                 c:type="GUPnPDIDLLiteFragmentResult">
      <doc xml:space="preserve">Possible return values of the gupnp_didl_lite_object_apply_fragments() call.</doc>
      <member name="ok"
              value="0"
              c:identifier="GUPNP_DIDL_LITE_FRAGMENT_RESULT_OK">
        <doc xml:space="preserve">Operation succeeded.</doc>
      </member>
      <member name="current_bad_xml"
              value="1"
              c:identifier="GUPNP_DIDL_LITE_FRAGMENT_RESULT_CURRENT_BAD_XML">
        <doc xml:space="preserve">Current set of fragments
is bad XML</doc>
      </member>
      <member name="new_bad_xml"
              value="2"
              c:identifier="GUPNP_DIDL_LITE_FRAGMENT_RESULT_NEW_BAD_XML">
        <doc xml:space="preserve">New set of fragments is bad
XML</doc>
      </member>
      <member name="current_invalid"
              value="3"
              c:identifier="GUPNP_DIDL_LITE_FRAGMENT_RESULT_CURRENT_INVALID">
        <doc xml:space="preserve">Current set of fragments
is invalid</doc>
      </member>
      <member name="new_invalid"
              value="4"
              c:identifier="GUPNP_DIDL_LITE_FRAGMENT_RESULT_NEW_INVALID">
        <doc xml:space="preserve">New set of fragments is
invalid</doc>
      </member>
      <member name="required_tag"
              value="5"
              c:identifier="GUPNP_DIDL_LITE_FRAGMENT_RESULT_REQUIRED_TAG">
        <doc xml:space="preserve">Trying to remove a required
tag</doc>
      </member>
      <member name="readonly_tag"
              value="6"
              c:identifier="GUPNP_DIDL_LITE_FRAGMENT_RESULT_READONLY_TAG">
        <doc xml:space="preserve">Trying to modify or remove a
read-only tag</doc>
      </member>
      <member name="mismatch"
              value="7"
              c:identifier="GUPNP_DIDL_LITE_FRAGMENT_RESULT_MISMATCH">
        <doc xml:space="preserve">Length of the two fragment sets
does not match</doc>
      </member>
      <member name="unknown_error"
              value="8"
              c:identifier="GUPNP_DIDL_LITE_FRAGMENT_RESULT_UNKNOWN_ERROR">
        <doc xml:space="preserve">General error sink if none
of the others applies.</doc>
      </member>
    </enumeration>
    <class name="DIDLLiteItem"
           c:symbol-prefix="didl_lite_item"
           c:type="GUPnPDIDLLiteItem"
           parent="DIDLLiteObject"
           glib:type-name="GUPnPDIDLLiteItem"
           glib:get-type="gupnp_didl_lite_item_get_type"
           glib:type-struct="DIDLLiteItemClass">
      <method name="get_lifetime"
              c:identifier="gupnp_didl_lite_item_get_lifetime">
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">-1 if unset or the lifetime (in seconds) of the current item.</doc>
          <type name="glong" c:type="glong"/>
        </return-value>
        <parameters>
          <instance-parameter name="item" transfer-ownership="none">
            <doc xml:space="preserve">#GUPnPDIDLLiteItem</doc>
            <type name="DIDLLiteItem" c:type="GUPnPDIDLLiteItem*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_ref_id" c:identifier="gupnp_didl_lite_item_get_ref_id">
        <doc xml:space="preserve">Get the ref ID of the @item.</doc>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">The ref ID of the @item, or %NULL.</doc>
          <type name="utf8" c:type="const char*"/>
        </return-value>
        <parameters>
          <instance-parameter name="item" transfer-ownership="none">
            <doc xml:space="preserve">#GUPnPDIDLLiteItem</doc>
            <type name="DIDLLiteItem" c:type="GUPnPDIDLLiteItem*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="set_lifetime"
              c:identifier="gupnp_didl_lite_item_set_lifetime">
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="item" transfer-ownership="none">
            <doc xml:space="preserve">#GUPnPDIDLLiteItem</doc>
            <type name="DIDLLiteItem" c:type="GUPnPDIDLLiteItem*"/>
          </instance-parameter>
          <parameter name="lifetime" transfer-ownership="none">
            <doc xml:space="preserve">The lifetime (in seconds) of this item in a media collection.</doc>
            <type name="glong" c:type="glong"/>
          </parameter>
        </parameters>
      </method>
      <method name="set_ref_id" c:identifier="gupnp_didl_lite_item_set_ref_id">
        <doc xml:space="preserve">Set the ref ID of the @item.</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="item" transfer-ownership="none">
            <doc xml:space="preserve">#GUPnPDIDLLiteItem</doc>
            <type name="DIDLLiteItem" c:type="GUPnPDIDLLiteItem*"/>
          </instance-parameter>
          <parameter name="ref_id" transfer-ownership="none">
            <doc xml:space="preserve">The ref ID</doc>
            <type name="utf8" c:type="const char*"/>
          </parameter>
        </parameters>
      </method>
      <property name="lifetime" writable="1" transfer-ownership="none">
        <doc xml:space="preserve">The lifetime in seconds of this DIDLLite item in a media collection.</doc>
        <type name="glong" c:type="glong"/>
      </property>
      <property name="ref-id" writable="1" transfer-ownership="none">
        <doc xml:space="preserve">The ref ID of this item.</doc>
        <type name="utf8" c:type="gchar*"/>
      </property>
      <field name="parent">
        <type name="DIDLLiteObject" c:type="GUPnPDIDLLiteObject"/>
      </field>
    </class>
    <record name="DIDLLiteItemClass"
            c:type="GUPnPDIDLLiteItemClass"
            glib:is-gtype-struct-for="DIDLLiteItem">
      <field name="parent_class">
        <type name="DIDLLiteObjectClass" c:type="GUPnPDIDLLiteObjectClass"/>
      </field>
      <field name="_gupnp_reserved1" introspectable="0">
        <callback name="_gupnp_reserved1">
          <return-value transfer-ownership="none">
            <type name="none" c:type="void"/>
          </return-value>
        </callback>
      </field>
      <field name="_gupnp_reserved2" introspectable="0">
        <callback name="_gupnp_reserved2">
          <return-value transfer-ownership="none">
            <type name="none" c:type="void"/>
          </return-value>
        </callback>
      </field>
      <field name="_gupnp_reserved3" introspectable="0">
        <callback name="_gupnp_reserved3">
          <return-value transfer-ownership="none">
            <type name="none" c:type="void"/>
          </return-value>
        </callback>
      </field>
      <field name="_gupnp_reserved4" introspectable="0">
        <callback name="_gupnp_reserved4">
          <return-value transfer-ownership="none">
            <type name="none" c:type="void"/>
          </return-value>
        </callback>
      </field>
    </record>
    <class name="DIDLLiteObject"
           c:symbol-prefix="didl_lite_object"
           c:type="GUPnPDIDLLiteObject"
           parent="GObject.Object"
           abstract="1"
           glib:type-name="GUPnPDIDLLiteObject"
           glib:get-type="gupnp_didl_lite_object_get_type"
           glib:type-struct="DIDLLiteObjectClass">
      <method name="add_artist"
              c:identifier="gupnp_didl_lite_object_add_artist">
        <doc xml:space="preserve">Add a new Artist node to the @object and return the associated
#GUPnPDIDLLiteContributor object.</doc>
        <return-value transfer-ownership="full">
          <doc xml:space="preserve">A new #GUPnPDIDLLiteContributor object. Unref after usage.</doc>
          <type name="DIDLLiteContributor" c:type="GUPnPDIDLLiteContributor*"/>
        </return-value>
        <parameters>
          <instance-parameter name="object" transfer-ownership="none">
            <doc xml:space="preserve">The #GUPnPDIDLLiteObject</doc>
            <type name="DIDLLiteObject" c:type="GUPnPDIDLLiteObject*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="add_author"
              c:identifier="gupnp_didl_lite_object_add_author">
        <doc xml:space="preserve">Add a new author node to the @object and return the associated
#GUPnPDIDLLiteContributor object.</doc>
        <return-value transfer-ownership="full">
          <doc xml:space="preserve">A new #GUPnPDIDLLiteContributor object. Unref after usage.</doc>
          <type name="DIDLLiteContributor" c:type="GUPnPDIDLLiteContributor*"/>
        </return-value>
        <parameters>
          <instance-parameter name="object" transfer-ownership="none">
            <doc xml:space="preserve">The #GUPnPDIDLLiteObject</doc>
            <type name="DIDLLiteObject" c:type="GUPnPDIDLLiteObject*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="add_creator"
              c:identifier="gupnp_didl_lite_object_add_creator">
        <doc xml:space="preserve">Add a new creator node to the @object and return the associated
#GUPnPDIDLLiteContributor object.</doc>
        <return-value transfer-ownership="full">
          <doc xml:space="preserve">A new #GUPnPDIDLLiteContributor object. Unref after usage.</doc>
          <type name="DIDLLiteContributor" c:type="GUPnPDIDLLiteContributor*"/>
        </return-value>
        <parameters>
          <instance-parameter name="object" transfer-ownership="none">
            <doc xml:space="preserve">The #GUPnPDIDLLiteObject</doc>
            <type name="DIDLLiteObject" c:type="GUPnPDIDLLiteObject*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="add_descriptor"
              c:identifier="gupnp_didl_lite_object_add_descriptor">
        <doc xml:space="preserve">Creates a new descriptor, attaches it to @object and returns it.</doc>
        <return-value transfer-ownership="full">
          <doc xml:space="preserve">A new #GUPnPDIDLLiteDescriptor object. Unref after usage.</doc>
          <type name="DIDLLiteDescriptor" c:type="GUPnPDIDLLiteDescriptor*"/>
        </return-value>
        <parameters>
          <instance-parameter name="object" transfer-ownership="none">
            <doc xml:space="preserve">A #GUPnPDIDLLiteObject</doc>
            <type name="DIDLLiteObject" c:type="GUPnPDIDLLiteObject*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="add_resource"
              c:identifier="gupnp_didl_lite_object_add_resource">
        <doc xml:space="preserve">Creates a new resource, attaches it to @object and returns it.</doc>
        <return-value transfer-ownership="full">
          <doc xml:space="preserve">A new #GUPnPDIDLLiteResource object. Unref after usage.</doc>
          <type name="DIDLLiteResource" c:type="GUPnPDIDLLiteResource*"/>
        </return-value>
        <parameters>
          <instance-parameter name="object" transfer-ownership="none">
            <doc xml:space="preserve">A #GUPnPDIDLLiteObject</doc>
            <type name="DIDLLiteObject" c:type="GUPnPDIDLLiteObject*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="apply_fragments"
              c:identifier="gupnp_didl_lite_object_apply_fragments">
        <doc xml:space="preserve">Updates object by applying @new_fragments in places of
@current_fragments. For @current_size and @new_size -1 can be
passed when respectively @current_fragments and @new_fragments are
NULL terminated.</doc>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">Result of operation.</doc>
          <type name="DIDLLiteFragmentResult"
                c:type="GUPnPDIDLLiteFragmentResult"/>
        </return-value>
        <parameters>
          <instance-parameter name="object" transfer-ownership="none">
            <doc xml:space="preserve">The #GUPnPDIDLLiteObject</doc>
            <type name="DIDLLiteObject" c:type="GUPnPDIDLLiteObject*"/>
          </instance-parameter>
          <parameter name="current_fragments" transfer-ownership="none">
            <doc xml:space="preserve">XML
fragments of @object.</doc>
            <array length="1" zero-terminated="0" c:type="gchar**">
              <type name="utf8" c:type="gchar*"/>
            </array>
          </parameter>
          <parameter name="current_size" transfer-ownership="none">
            <doc xml:space="preserve">Size of @current_fragments or -1.</doc>
            <type name="gint" c:type="gint"/>
          </parameter>
          <parameter name="new_fragments" transfer-ownership="none">
            <doc xml:space="preserve">Substitutes
for @current_fragments.</doc>
            <array length="3" zero-terminated="0" c:type="gchar**">
              <type name="utf8" c:type="gchar*"/>
            </array>
          </parameter>
          <parameter name="new_size" transfer-ownership="none">
            <doc xml:space="preserve">Size of @new_fragments or -1.</doc>
            <type name="gint" c:type="gint"/>
          </parameter>
        </parameters>
      </method>
      <method name="get_album" c:identifier="gupnp_didl_lite_object_get_album">
        <doc xml:space="preserve">Get the album of the @object.</doc>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">The album of the @object, or %NULL.</doc>
          <type name="utf8" c:type="const char*"/>
        </return-value>
        <parameters>
          <instance-parameter name="object" transfer-ownership="none">
            <doc xml:space="preserve">#GUPnPDIDLLiteObject</doc>
            <type name="DIDLLiteObject" c:type="GUPnPDIDLLiteObject*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_album_art"
              c:identifier="gupnp_didl_lite_object_get_album_art">
        <doc xml:space="preserve">Get the URI to album art of the @object.</doc>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">The URI to album art of the @object, or %NULL.</doc>
          <type name="utf8" c:type="const char*"/>
        </return-value>
        <parameters>
          <instance-parameter name="object" transfer-ownership="none">
            <doc xml:space="preserve">#GUPnPDIDLLiteObject</doc>
            <type name="DIDLLiteObject" c:type="GUPnPDIDLLiteObject*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_album_xml_string"
              c:identifier="gupnp_didl_lite_object_get_album_xml_string">
        <doc xml:space="preserve">Creates a string representation of the DIDL-Lite XML fragment related to the
object album.</doc>
        <return-value transfer-ownership="full">
          <doc xml:space="preserve">A DIDL-Lite XML fragment string, or %NULL. #g_free after usage.</doc>
          <type name="utf8" c:type="char*"/>
        </return-value>
        <parameters>
          <instance-parameter name="object" transfer-ownership="none">
            <doc xml:space="preserve">A #GUPnPDIDLLiteObject</doc>
            <type name="DIDLLiteObject" c:type="GUPnPDIDLLiteObject*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_artist"
              c:identifier="gupnp_didl_lite_object_get_artist"
              deprecated="1"
              deprecated-version="0.5.3">
        <doc xml:space="preserve">Get the artist of the @object. If role is not %NULL, it is set to the role
of the artist if available.</doc>
        <doc-deprecated xml:space="preserve">Use #gupnp_didl_lite_object_get_artists instead.</doc-deprecated>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">The artist of the @object, or %NULL.</doc>
          <type name="utf8" c:type="const char*"/>
        </return-value>
        <parameters>
          <instance-parameter name="object" transfer-ownership="none">
            <doc xml:space="preserve">#GUPnPDIDLLiteObject</doc>
            <type name="DIDLLiteObject" c:type="GUPnPDIDLLiteObject*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_artists"
              c:identifier="gupnp_didl_lite_object_get_artists">
        <doc xml:space="preserve">Get the artists of the @object.</doc>
        <return-value transfer-ownership="full">
          <doc xml:space="preserve">The list
of artists belonging to @object, or %NULL.
#g_list_free the returned list after usage and unref each object in it.</doc>
          <type name="GLib.List" c:type="GList*">
            <type name="DIDLLiteContributor"/>
          </type>
        </return-value>
        <parameters>
          <instance-parameter name="object" transfer-ownership="none">
            <doc xml:space="preserve">#GUPnPDIDLLiteObject</doc>
            <type name="DIDLLiteObject" c:type="GUPnPDIDLLiteObject*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_artists_xml_string"
              c:identifier="gupnp_didl_lite_object_get_artists_xml_string">
        <doc xml:space="preserve">Creates a string representation of the DIDL-Lite XML fragments related to the
object artists.</doc>
        <return-value transfer-ownership="full">
          <doc xml:space="preserve">A DIDL-Lite XML fragment string, or %NULL. #g_free after usage.</doc>
          <type name="utf8" c:type="char*"/>
        </return-value>
        <parameters>
          <instance-parameter name="object" transfer-ownership="none">
            <doc xml:space="preserve">A #GUPnPDIDLLiteObject</doc>
            <type name="DIDLLiteObject" c:type="GUPnPDIDLLiteObject*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_author"
              c:identifier="gupnp_didl_lite_object_get_author"
              deprecated="1"
              deprecated-version="0.5.3">
        <doc xml:space="preserve">Get the author of the @object.</doc>
        <doc-deprecated xml:space="preserve">Use #gupnp_didl_lite_object_get_authors instead.</doc-deprecated>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">The author of the @object, or %NULL.</doc>
          <type name="utf8" c:type="const char*"/>
        </return-value>
        <parameters>
          <instance-parameter name="object" transfer-ownership="none">
            <doc xml:space="preserve">#GUPnPDIDLLiteObject</doc>
            <type name="DIDLLiteObject" c:type="GUPnPDIDLLiteObject*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_authors"
              c:identifier="gupnp_didl_lite_object_get_authors">
        <doc xml:space="preserve">Get the authors of the @object.</doc>
        <return-value transfer-ownership="full">
          <doc xml:space="preserve">The list
of authors belonging to @object, or %NULL.
#g_list_free the returned list after usage and unref each object in it.</doc>
          <type name="GLib.List" c:type="GList*">
            <type name="DIDLLiteContributor"/>
          </type>
        </return-value>
        <parameters>
          <instance-parameter name="object" transfer-ownership="none">
            <doc xml:space="preserve">#GUPnPDIDLLiteObject</doc>
            <type name="DIDLLiteObject" c:type="GUPnPDIDLLiteObject*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_compat_resource"
              c:identifier="gupnp_didl_lite_object_get_compat_resource">
        <doc xml:space="preserve">Use this function to get a resource from the @object that is compatible with
any of the protocols specified in the @sink_protocol_info. The value of
@sink_protocol_info will typically be acquired from 'Sink' argument of
'GetProtocolInfo' action or 'SinkProtocolInfo' state-variable of a
ConnectionManager service.

If @lenient is #TRUE, the first resource in the list is returned instead of
%NULL if none of resources and protocols are found to be compatible.</doc>
        <return-value transfer-ownership="full">
          <doc xml:space="preserve">The resource belonging to @object that is comaptible with
any of the protocols specified in @sink_protocol_info, or %NULL. Unref after
usage.</doc>
          <type name="DIDLLiteResource" c:type="GUPnPDIDLLiteResource*"/>
        </return-value>
        <parameters>
          <instance-parameter name="object" transfer-ownership="none">
            <doc xml:space="preserve">#GUPnPDIDLLiteObject</doc>
            <type name="DIDLLiteObject" c:type="GUPnPDIDLLiteObject*"/>
          </instance-parameter>
          <parameter name="sink_protocol_info" transfer-ownership="none">
            <doc xml:space="preserve">The SinkProtocolInfo string from MediaRenderer</doc>
            <type name="utf8" c:type="const char*"/>
          </parameter>
          <parameter name="lenient" transfer-ownership="none">
            <doc xml:space="preserve">Enable lenient mode</doc>
            <type name="gboolean" c:type="gboolean"/>
          </parameter>
        </parameters>
      </method>
      <method name="get_creator"
              c:identifier="gupnp_didl_lite_object_get_creator">
        <doc xml:space="preserve">Get the creator of the @object.</doc>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">The creator of the @object, or %NULL.</doc>
          <type name="utf8" c:type="const char*"/>
        </return-value>
        <parameters>
          <instance-parameter name="object" transfer-ownership="none">
            <doc xml:space="preserve">#GUPnPDIDLLiteObject</doc>
            <type name="DIDLLiteObject" c:type="GUPnPDIDLLiteObject*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_creators"
              c:identifier="gupnp_didl_lite_object_get_creators">
        <doc xml:space="preserve">Get the creators of the @object.</doc>
        <return-value transfer-ownership="full">
          <doc xml:space="preserve">The list
of creators belonging to @object, or %NULL.
#g_list_free the returned list after usage and unref each object in it.</doc>
          <type name="GLib.List" c:type="GList*">
            <type name="DIDLLiteContributor"/>
          </type>
        </return-value>
        <parameters>
          <instance-parameter name="object" transfer-ownership="none">
            <doc xml:space="preserve">#GUPnPDIDLLiteObject</doc>
            <type name="DIDLLiteObject" c:type="GUPnPDIDLLiteObject*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_date" c:identifier="gupnp_didl_lite_object_get_date">
        <doc xml:space="preserve">Get the date of the @object.</doc>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">The date of the @object, or %NULL.</doc>
          <type name="utf8" c:type="const char*"/>
        </return-value>
        <parameters>
          <instance-parameter name="object" transfer-ownership="none">
            <doc xml:space="preserve">#GUPnPDIDLLiteObject</doc>
            <type name="DIDLLiteObject" c:type="GUPnPDIDLLiteObject*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_date_xml_string"
              c:identifier="gupnp_didl_lite_object_get_date_xml_string">
        <doc xml:space="preserve">Creates a string representation of the DIDL-Lite XML fragment related to the
object date.</doc>
        <return-value transfer-ownership="full">
          <doc xml:space="preserve">A DIDL-Lite XML fragment string, or %NULL. #g_free after usage.</doc>
          <type name="utf8" c:type="char*"/>
        </return-value>
        <parameters>
          <instance-parameter name="object" transfer-ownership="none">
            <doc xml:space="preserve">A #GUPnPDIDLLiteObject</doc>
            <type name="DIDLLiteObject" c:type="GUPnPDIDLLiteObject*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_dc_namespace"
              c:identifier="gupnp_didl_lite_object_get_dc_namespace">
        <doc xml:space="preserve">Get the pointer to the DublinCore namespace registered with the XML document
containing this object.</doc>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">The pointer to DublinCore namespace in XML document.</doc>
          <type name="libxml2.NsPtr" c:type="xmlNsPtr"/>
        </return-value>
        <parameters>
          <instance-parameter name="object" transfer-ownership="none">
            <doc xml:space="preserve">The #GUPnPDIDLLiteObject</doc>
            <type name="DIDLLiteObject" c:type="GUPnPDIDLLiteObject*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_description"
              c:identifier="gupnp_didl_lite_object_get_description">
        <doc xml:space="preserve">Get the description of the @object.</doc>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">The description of the @object, or %NULL.</doc>
          <type name="utf8" c:type="const char*"/>
        </return-value>
        <parameters>
          <instance-parameter name="object" transfer-ownership="none">
            <doc xml:space="preserve">#GUPnPDIDLLiteObject</doc>
            <type name="DIDLLiteObject" c:type="GUPnPDIDLLiteObject*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_descriptors"
              c:identifier="gupnp_didl_lite_object_get_descriptors">
        <doc xml:space="preserve">Get the descriptors of the @object.</doc>
        <return-value transfer-ownership="full">
          <doc xml:space="preserve">The list of
descriptors belonging to @object, or %NULL.
#g_list_free the returned list after usage and unref each object in it.</doc>
          <type name="GLib.List" c:type="GList*">
            <type name="DIDLLiteDescriptor"/>
          </type>
        </return-value>
        <parameters>
          <instance-parameter name="object" transfer-ownership="none">
            <doc xml:space="preserve">#GUPnPDIDLLiteObject</doc>
            <type name="DIDLLiteObject" c:type="GUPnPDIDLLiteObject*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_dlna_managed"
              c:identifier="gupnp_didl_lite_object_get_dlna_managed">
        <doc xml:space="preserve">Get the 'dlna:dlnaManaged' attribute of the @object.</doc>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">The 'dlna:dlnaManaged' attribute of the @object.</doc>
          <type name="OCMFlags" c:type="GUPnPOCMFlags"/>
        </return-value>
        <parameters>
          <instance-parameter name="object" transfer-ownership="none">
            <doc xml:space="preserve">#GUPnPDIDLLiteObject</doc>
            <type name="DIDLLiteObject" c:type="GUPnPDIDLLiteObject*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_dlna_namespace"
              c:identifier="gupnp_didl_lite_object_get_dlna_namespace">
        <doc xml:space="preserve">Get the pointer to the DLNA metadata namespace registered with the XML
document containing this object.</doc>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">The pointer to DLNA namespace in XML document.</doc>
          <type name="libxml2.NsPtr" c:type="xmlNsPtr"/>
        </return-value>
        <parameters>
          <instance-parameter name="object" transfer-ownership="none">
            <doc xml:space="preserve">The #GUPnPDIDLLiteObject</doc>
            <type name="DIDLLiteObject" c:type="GUPnPDIDLLiteObject*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_genre" c:identifier="gupnp_didl_lite_object_get_genre">
        <doc xml:space="preserve">Get the genre of the @object.</doc>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">The genre of the @object, or %NULL.</doc>
          <type name="utf8" c:type="const char*"/>
        </return-value>
        <parameters>
          <instance-parameter name="object" transfer-ownership="none">
            <doc xml:space="preserve">#GUPnPDIDLLiteObject</doc>
            <type name="DIDLLiteObject" c:type="GUPnPDIDLLiteObject*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_id" c:identifier="gupnp_didl_lite_object_get_id">
        <doc xml:space="preserve">Get the ID of the @object.</doc>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">The ID of the @object, or %NULL.</doc>
          <type name="utf8" c:type="const char*"/>
        </return-value>
        <parameters>
          <instance-parameter name="object" transfer-ownership="none">
            <doc xml:space="preserve">#GUPnPDIDLLiteObject</doc>
            <type name="DIDLLiteObject" c:type="GUPnPDIDLLiteObject*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_parent_id"
              c:identifier="gupnp_didl_lite_object_get_parent_id">
        <doc xml:space="preserve">Get the ID of the parent of the @object.</doc>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">The ID of parent of the @object, or %NULL.</doc>
          <type name="utf8" c:type="const char*"/>
        </return-value>
        <parameters>
          <instance-parameter name="object" transfer-ownership="none">
            <doc xml:space="preserve">#GUPnPDIDLLiteObject</doc>
            <type name="DIDLLiteObject" c:type="GUPnPDIDLLiteObject*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_properties"
              c:identifier="gupnp_didl_lite_object_get_properties">
        <doc xml:space="preserve">Use this function to retreive property nodes by name.</doc>
        <return-value transfer-ownership="container">
          <doc xml:space="preserve">The list of
property nodes by the name @property_name belonging to @object, or %NULL.
#g_list_free the returned list after usage but do not modify the contents.</doc>
          <type name="GLib.List" c:type="GList*">
            <type name="libxml2.Node"/>
          </type>
        </return-value>
        <parameters>
          <instance-parameter name="object" transfer-ownership="none">
            <doc xml:space="preserve">#GUPnPDIDLLiteObject</doc>
            <type name="DIDLLiteObject" c:type="GUPnPDIDLLiteObject*"/>
          </instance-parameter>
          <parameter name="name" transfer-ownership="none">
            <doc xml:space="preserve">name of the properties</doc>
            <type name="utf8" c:type="const char*"/>
          </parameter>
        </parameters>
      </method>
      <method name="get_pv_namespace"
              c:identifier="gupnp_didl_lite_object_get_pv_namespace">
        <doc xml:space="preserve">Get the pointer to the PV metadata namespace registered with the XML
document containing this object.</doc>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">The pointer to PV namespace in XML document.</doc>
          <type name="libxml2.NsPtr" c:type="xmlNsPtr"/>
        </return-value>
        <parameters>
          <instance-parameter name="object" transfer-ownership="none">
            <doc xml:space="preserve">The #GUPnPDIDLLiteObject</doc>
            <type name="DIDLLiteObject" c:type="GUPnPDIDLLiteObject*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_resources"
              c:identifier="gupnp_didl_lite_object_get_resources">
        <doc xml:space="preserve">Use this function to retreive resources from the @object.</doc>
        <return-value transfer-ownership="full">
          <doc xml:space="preserve">The list
              of resources belonging to  @object, or %NULL. #g_list_free the
              returned list after usage and unref each resource in it.</doc>
          <type name="GLib.List" c:type="GList*">
            <type name="DIDLLiteResource"/>
          </type>
        </return-value>
        <parameters>
          <instance-parameter name="object" transfer-ownership="none">
            <doc xml:space="preserve">#GUPnPDIDLLiteObject</doc>
            <type name="DIDLLiteObject" c:type="GUPnPDIDLLiteObject*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_restricted"
              c:identifier="gupnp_didl_lite_object_get_restricted">
        <doc xml:space="preserve">Whether the @object is restricted or not.</doc>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">#TRUE if @object is restricted.</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <instance-parameter name="object" transfer-ownership="none">
            <doc xml:space="preserve">#GUPnPDIDLLiteObject</doc>
            <type name="DIDLLiteObject" c:type="GUPnPDIDLLiteObject*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_title" c:identifier="gupnp_didl_lite_object_get_title">
        <doc xml:space="preserve">Get the title of the @object.</doc>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">The title of the @object, or %NULL.</doc>
          <type name="utf8" c:type="const char*"/>
        </return-value>
        <parameters>
          <instance-parameter name="object" transfer-ownership="none">
            <doc xml:space="preserve">#GUPnPDIDLLiteObject</doc>
            <type name="DIDLLiteObject" c:type="GUPnPDIDLLiteObject*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_title_xml_string"
              c:identifier="gupnp_didl_lite_object_get_title_xml_string">
        <doc xml:space="preserve">Creates a string representation of the DIDL-Lite XML fragment related to the
object title.</doc>
        <return-value transfer-ownership="full">
          <doc xml:space="preserve">A DIDL-Lite XML fragment string, or %NULL. #g_free after usage.</doc>
          <type name="utf8" c:type="char*"/>
        </return-value>
        <parameters>
          <instance-parameter name="object" transfer-ownership="none">
            <doc xml:space="preserve">A #GUPnPDIDLLiteObject</doc>
            <type name="DIDLLiteObject" c:type="GUPnPDIDLLiteObject*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_track_number"
              c:identifier="gupnp_didl_lite_object_get_track_number">
        <doc xml:space="preserve">Get the original track number of the @object.</doc>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">The original track number of the @object, or -1.</doc>
          <type name="gint" c:type="int"/>
        </return-value>
        <parameters>
          <instance-parameter name="object" transfer-ownership="none">
            <doc xml:space="preserve">#GUPnPDIDLLiteObject</doc>
            <type name="DIDLLiteObject" c:type="GUPnPDIDLLiteObject*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_track_number_xml_string"
              c:identifier="gupnp_didl_lite_object_get_track_number_xml_string">
        <doc xml:space="preserve">Creates a string representation of the DIDL-Lite XML fragment related to the
object track number.</doc>
        <return-value transfer-ownership="full">
          <doc xml:space="preserve">A DIDL-Lite XML fragment string, or %NULL. #g_free after usage.</doc>
          <type name="utf8" c:type="char*"/>
        </return-value>
        <parameters>
          <instance-parameter name="object" transfer-ownership="none">
            <doc xml:space="preserve">A #GUPnPDIDLLiteObject</doc>
            <type name="DIDLLiteObject" c:type="GUPnPDIDLLiteObject*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_update_id"
              c:identifier="gupnp_didl_lite_object_get_update_id">
        <doc xml:space="preserve">Get the update ID of the @object.</doc>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">The update ID of the @object.</doc>
          <type name="guint" c:type="guint"/>
        </return-value>
        <parameters>
          <instance-parameter name="object" transfer-ownership="none">
            <doc xml:space="preserve">#GUPnPDIDLLiteObject</doc>
            <type name="DIDLLiteObject" c:type="GUPnPDIDLLiteObject*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_upnp_class"
              c:identifier="gupnp_didl_lite_object_get_upnp_class">
        <doc xml:space="preserve">Get the UPnP class of the @object.</doc>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">The class of @object, or %NULL.</doc>
          <type name="utf8" c:type="const char*"/>
        </return-value>
        <parameters>
          <instance-parameter name="object" transfer-ownership="none">
            <doc xml:space="preserve">The #GUPnPDIDLLiteObject</doc>
            <type name="DIDLLiteObject" c:type="GUPnPDIDLLiteObject*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_upnp_class_xml_string"
              c:identifier="gupnp_didl_lite_object_get_upnp_class_xml_string">
        <doc xml:space="preserve">Creates a string representation of the DIDL-Lite XML fragment related to the
object UPnP class.</doc>
        <return-value transfer-ownership="full">
          <doc xml:space="preserve">A DIDL-Lite XML fragment string, or %NULL. #g_free after usage.</doc>
          <type name="utf8" c:type="char*"/>
        </return-value>
        <parameters>
          <instance-parameter name="object" transfer-ownership="none">
            <doc xml:space="preserve">A #GUPnPDIDLLiteObject</doc>
            <type name="DIDLLiteObject" c:type="GUPnPDIDLLiteObject*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_upnp_namespace"
              c:identifier="gupnp_didl_lite_object_get_upnp_namespace">
        <doc xml:space="preserve">Get the pointer to the UPnP namespace registered with the XML document.</doc>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">The pointer to UPnP namespace in XML document.</doc>
          <type name="libxml2.NsPtr" c:type="xmlNsPtr"/>
        </return-value>
        <parameters>
          <instance-parameter name="object" transfer-ownership="none">
            <doc xml:space="preserve">The #GUPnPDIDLLiteObject</doc>
            <type name="DIDLLiteObject" c:type="GUPnPDIDLLiteObject*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_write_status"
              c:identifier="gupnp_didl_lite_object_get_write_status">
        <doc xml:space="preserve">Get the write status of the @object.</doc>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">The write status of the @object, or %NULL.</doc>
          <type name="utf8" c:type="const char*"/>
        </return-value>
        <parameters>
          <instance-parameter name="object" transfer-ownership="none">
            <doc xml:space="preserve">#GUPnPDIDLLiteObject</doc>
            <type name="DIDLLiteObject" c:type="GUPnPDIDLLiteObject*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_xml_node"
              c:identifier="gupnp_didl_lite_object_get_xml_node">
        <doc xml:space="preserve">Get the pointer to object node in XML document.</doc>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">The pointer to object node in XML document.</doc>
          <type name="libxml2.Node" c:type="xmlNode*"/>
        </return-value>
        <parameters>
          <instance-parameter name="object" transfer-ownership="none">
            <doc xml:space="preserve">The #GUPnPDIDLLiteObject</doc>
            <type name="DIDLLiteObject" c:type="GUPnPDIDLLiteObject*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_xml_string"
              c:identifier="gupnp_didl_lite_object_get_xml_string">
        <doc xml:space="preserve">Get the representation of this object as an XML string.</doc>
        <return-value transfer-ownership="full">
          <doc xml:space="preserve">XML representation of this object as string.</doc>
          <type name="utf8" c:type="char*"/>
        </return-value>
        <parameters>
          <instance-parameter name="object" transfer-ownership="none">
            <doc xml:space="preserve">#GUPnPDIDLLiteObject</doc>
            <type name="DIDLLiteObject" c:type="GUPnPDIDLLiteObject*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="set_album" c:identifier="gupnp_didl_lite_object_set_album">
        <doc xml:space="preserve">Set the album of the @object to @album.</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="object" transfer-ownership="none">
            <doc xml:space="preserve">#GUPnPDIDLLiteObject</doc>
            <type name="DIDLLiteObject" c:type="GUPnPDIDLLiteObject*"/>
          </instance-parameter>
          <parameter name="album" transfer-ownership="none">
            <doc xml:space="preserve">The album string</doc>
            <type name="utf8" c:type="const char*"/>
          </parameter>
        </parameters>
      </method>
      <method name="set_album_art"
              c:identifier="gupnp_didl_lite_object_set_album_art">
        <doc xml:space="preserve">Set the URI to album art of the @object to @album_art.</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="object" transfer-ownership="none">
            <doc xml:space="preserve">#GUPnPDIDLLiteObject</doc>
            <type name="DIDLLiteObject" c:type="GUPnPDIDLLiteObject*"/>
          </instance-parameter>
          <parameter name="album_art" transfer-ownership="none">
            <doc xml:space="preserve">The URI of album art</doc>
            <type name="utf8" c:type="const char*"/>
          </parameter>
        </parameters>
      </method>
      <method name="set_artist"
              c:identifier="gupnp_didl_lite_object_set_artist"
              deprecated="1"
              deprecated-version="0.5.3">
        <doc xml:space="preserve">Set the Artist of the @object to @artist.</doc>
        <doc-deprecated xml:space="preserve">Use #gupnp_didl_lite_object_add_artist instead.</doc-deprecated>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="object" transfer-ownership="none">
            <doc xml:space="preserve">The #GUPnPDIDLLiteObject</doc>
            <type name="DIDLLiteObject" c:type="GUPnPDIDLLiteObject*"/>
          </instance-parameter>
          <parameter name="artist" transfer-ownership="none">
            <doc xml:space="preserve">The Artist</doc>
            <type name="utf8" c:type="const char*"/>
          </parameter>
        </parameters>
      </method>
      <method name="set_author"
              c:identifier="gupnp_didl_lite_object_set_author"
              deprecated="1"
              deprecated-version="0.5.3">
        <doc xml:space="preserve">Set the Author of the @object to @author.</doc>
        <doc-deprecated xml:space="preserve">Use #gupnp_didl_lite_object_add_author instead.</doc-deprecated>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="object" transfer-ownership="none">
            <doc xml:space="preserve">The #GUPnPDIDLLiteObject</doc>
            <type name="DIDLLiteObject" c:type="GUPnPDIDLLiteObject*"/>
          </instance-parameter>
          <parameter name="author" transfer-ownership="none">
            <doc xml:space="preserve">The Author</doc>
            <type name="utf8" c:type="const char*"/>
          </parameter>
        </parameters>
      </method>
      <method name="set_creator"
              c:identifier="gupnp_didl_lite_object_set_creator">
        <doc xml:space="preserve">Set the creator of the @object to @creator.</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="object" transfer-ownership="none">
            <doc xml:space="preserve">#GUPnPDIDLLiteObject</doc>
            <type name="DIDLLiteObject" c:type="GUPnPDIDLLiteObject*"/>
          </instance-parameter>
          <parameter name="creator" transfer-ownership="none">
            <doc xml:space="preserve">The creator</doc>
            <type name="utf8" c:type="const char*"/>
          </parameter>
        </parameters>
      </method>
      <method name="set_date" c:identifier="gupnp_didl_lite_object_set_date">
        <doc xml:space="preserve">Set the date of the @object to @date.</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="object" transfer-ownership="none">
            <doc xml:space="preserve">#GUPnPDIDLLiteObject</doc>
            <type name="DIDLLiteObject" c:type="GUPnPDIDLLiteObject*"/>
          </instance-parameter>
          <parameter name="date" transfer-ownership="none">
            <doc xml:space="preserve">The date string</doc>
            <type name="utf8" c:type="const char*"/>
          </parameter>
        </parameters>
      </method>
      <method name="set_description"
              c:identifier="gupnp_didl_lite_object_set_description">
        <doc xml:space="preserve">Set the description of the @object to @description.</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="object" transfer-ownership="none">
            <doc xml:space="preserve">#GUPnPDIDLLiteObject</doc>
            <type name="DIDLLiteObject" c:type="GUPnPDIDLLiteObject*"/>
          </instance-parameter>
          <parameter name="description" transfer-ownership="none">
            <doc xml:space="preserve">The description string</doc>
            <type name="utf8" c:type="const char*"/>
          </parameter>
        </parameters>
      </method>
      <method name="set_dlna_managed"
              c:identifier="gupnp_didl_lite_object_set_dlna_managed">
        <doc xml:space="preserve">Set the 'dlna:dlnaManaged' attribute of the @object to @dlna_managed.</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="object" transfer-ownership="none">
            <doc xml:space="preserve">#GUPnPDIDLLiteObject</doc>
            <type name="DIDLLiteObject" c:type="GUPnPDIDLLiteObject*"/>
          </instance-parameter>
          <parameter name="dlna_managed" transfer-ownership="none">
            <doc xml:space="preserve">The #GUPnPOCMFlags.</doc>
            <type name="OCMFlags" c:type="GUPnPOCMFlags"/>
          </parameter>
        </parameters>
      </method>
      <method name="set_genre" c:identifier="gupnp_didl_lite_object_set_genre">
        <doc xml:space="preserve">Set the genre of the @object to @genre.</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="object" transfer-ownership="none">
            <doc xml:space="preserve">The #GUPnPDIDLLiteObject</doc>
            <type name="DIDLLiteObject" c:type="GUPnPDIDLLiteObject*"/>
          </instance-parameter>
          <parameter name="genre" transfer-ownership="none">
            <doc xml:space="preserve">The Genre</doc>
            <type name="utf8" c:type="const char*"/>
          </parameter>
        </parameters>
      </method>
      <method name="set_id" c:identifier="gupnp_didl_lite_object_set_id">
        <doc xml:space="preserve">Set the ID of the @object to @id.</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="object" transfer-ownership="none">
            <doc xml:space="preserve">#GUPnPDIDLLiteObject</doc>
            <type name="DIDLLiteObject" c:type="GUPnPDIDLLiteObject*"/>
          </instance-parameter>
          <parameter name="id" transfer-ownership="none">
            <doc xml:space="preserve">The ID</doc>
            <type name="utf8" c:type="const char*"/>
          </parameter>
        </parameters>
      </method>
      <method name="set_parent_id"
              c:identifier="gupnp_didl_lite_object_set_parent_id">
        <doc xml:space="preserve">Set the ID of the parent of the @object to @parent_id.</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="object" transfer-ownership="none">
            <doc xml:space="preserve">#GUPnPDIDLLiteObject</doc>
            <type name="DIDLLiteObject" c:type="GUPnPDIDLLiteObject*"/>
          </instance-parameter>
          <parameter name="parent_id" transfer-ownership="none">
            <doc xml:space="preserve">The parent ID</doc>
            <type name="utf8" c:type="const char*"/>
          </parameter>
        </parameters>
      </method>
      <method name="set_restricted"
              c:identifier="gupnp_didl_lite_object_set_restricted">
        <doc xml:space="preserve">Set the restricted status of @object to @restricted.</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="object" transfer-ownership="none">
            <doc xml:space="preserve">#GUPnPDIDLLiteObject</doc>
            <type name="DIDLLiteObject" c:type="GUPnPDIDLLiteObject*"/>
          </instance-parameter>
          <parameter name="restricted" transfer-ownership="none">
            <doc xml:space="preserve">The restricted status</doc>
            <type name="gboolean" c:type="gboolean"/>
          </parameter>
        </parameters>
      </method>
      <method name="set_title" c:identifier="gupnp_didl_lite_object_set_title">
        <doc xml:space="preserve">Set the title of the @object to @title.</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="object" transfer-ownership="none">
            <doc xml:space="preserve">#GUPnPDIDLLiteObject</doc>
            <type name="DIDLLiteObject" c:type="GUPnPDIDLLiteObject*"/>
          </instance-parameter>
          <parameter name="title" transfer-ownership="none">
            <doc xml:space="preserve">The title</doc>
            <type name="utf8" c:type="const char*"/>
          </parameter>
        </parameters>
      </method>
      <method name="set_track_number"
              c:identifier="gupnp_didl_lite_object_set_track_number">
        <doc xml:space="preserve">Set the original track number of the @object to @track_number.</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="object" transfer-ownership="none">
            <doc xml:space="preserve">#GUPnPDIDLLiteObject</doc>
            <type name="DIDLLiteObject" c:type="GUPnPDIDLLiteObject*"/>
          </instance-parameter>
          <parameter name="track_number" transfer-ownership="none">
            <doc xml:space="preserve">The original track number</doc>
            <type name="gint" c:type="int"/>
          </parameter>
        </parameters>
      </method>
      <method name="set_update_id"
              c:identifier="gupnp_didl_lite_object_set_update_id">
        <doc xml:space="preserve">Set the update ID of the @object.</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="object" transfer-ownership="none">
            <doc xml:space="preserve">#GUPnPDIDLLiteObject</doc>
            <type name="DIDLLiteObject" c:type="GUPnPDIDLLiteObject*"/>
          </instance-parameter>
          <parameter name="update_id" transfer-ownership="none">
            <doc xml:space="preserve">Update ID</doc>
            <type name="guint" c:type="guint"/>
          </parameter>
        </parameters>
      </method>
      <method name="set_upnp_class"
              c:identifier="gupnp_didl_lite_object_set_upnp_class">
        <doc xml:space="preserve">Set the UPnP class of the @object to @upnp_class.</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="object" transfer-ownership="none">
            <doc xml:space="preserve">The #GUPnPDIDLLiteObject</doc>
            <type name="DIDLLiteObject" c:type="GUPnPDIDLLiteObject*"/>
          </instance-parameter>
          <parameter name="upnp_class" transfer-ownership="none">
            <doc xml:space="preserve">The UPnP class as string.</doc>
            <type name="utf8" c:type="const char*"/>
          </parameter>
        </parameters>
      </method>
      <method name="set_write_status"
              c:identifier="gupnp_didl_lite_object_set_write_status">
        <doc xml:space="preserve">Set the write status of the @object to @write_status.</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="object" transfer-ownership="none">
            <doc xml:space="preserve">#GUPnPDIDLLiteObject</doc>
            <type name="DIDLLiteObject" c:type="GUPnPDIDLLiteObject*"/>
          </instance-parameter>
          <parameter name="write_status" transfer-ownership="none">
            <doc xml:space="preserve">The write status string</doc>
            <type name="utf8" c:type="const char*"/>
          </parameter>
        </parameters>
      </method>
      <method name="unset_artists"
              c:identifier="gupnp_didl_lite_object_unset_artists">
        <doc xml:space="preserve">Unset the artists properties of the @object.</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="object" transfer-ownership="none">
            <doc xml:space="preserve">#GUPnPDIDLLiteObject</doc>
            <type name="DIDLLiteObject" c:type="GUPnPDIDLLiteObject*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="unset_update_id"
              c:identifier="gupnp_didl_lite_object_unset_update_id">
        <doc xml:space="preserve">Unset the update ID property of the @object.</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="object" transfer-ownership="none">
            <doc xml:space="preserve">#GUPnPDIDLLiteObject</doc>
            <type name="DIDLLiteObject" c:type="GUPnPDIDLLiteObject*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="update_id_is_set"
              c:identifier="gupnp_didl_lite_object_update_id_is_set">
        <doc xml:space="preserve">Get whether the update ID of the @object is set.</doc>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">%TRUE if update ID is set, otherwise %FALSE</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <instance-parameter name="object" transfer-ownership="none">
            <doc xml:space="preserve">#GUPnPDIDLLiteObject</doc>
            <type name="DIDLLiteObject" c:type="GUPnPDIDLLiteObject*"/>
          </instance-parameter>
        </parameters>
      </method>
      <property name="album" writable="1" transfer-ownership="none">
        <doc xml:space="preserve">The album of this object.</doc>
        <type name="utf8" c:type="gchar*"/>
      </property>
      <property name="album-art" writable="1" transfer-ownership="none">
        <doc xml:space="preserve">The URI to album art of this object.</doc>
        <type name="utf8" c:type="gchar*"/>
      </property>
      <property name="artist"
                deprecated="1"
                deprecated-version="0.5.3"
                writable="1"
                transfer-ownership="none">
        <doc xml:space="preserve">The artist of this object.</doc>
        <doc-deprecated xml:space="preserve">Use #gupnp_didl_lite_object_get_artists and
#gupnp_didl_lite_object_add_artist instead since unlike this
property, they are capable of dealing with multiple artist nodes.</doc-deprecated>
        <type name="utf8" c:type="gchar*"/>
      </property>
      <property name="author"
                deprecated="1"
                deprecated-version="0.5.3"
                writable="1"
                transfer-ownership="none">
        <doc xml:space="preserve">The author of this object.</doc>
        <doc-deprecated xml:space="preserve">Use #gupnp_didl_lite_object_get_authors and
#gupnp_didl_lite_object_add_author instead since unlike this
property, they are capable of dealing with multiple author nodes.</doc-deprecated>
        <type name="utf8" c:type="gchar*"/>
      </property>
      <property name="creator" writable="1" transfer-ownership="none">
        <doc xml:space="preserve">The creator of this object.</doc>
        <type name="utf8" c:type="gchar*"/>
      </property>
      <property name="date" writable="1" transfer-ownership="none">
        <doc xml:space="preserve">The date of this object.</doc>
        <type name="utf8" c:type="gchar*"/>
      </property>
      <property name="dc-namespace"
                writable="1"
                construct-only="1"
                transfer-ownership="none">
        <doc xml:space="preserve">Pointer to the DublinCore namespace registered with the XML document
containing this object.</doc>
        <type name="gpointer" c:type="gpointer"/>
      </property>
      <property name="description" writable="1" transfer-ownership="none">
        <doc xml:space="preserve">The description of this object.</doc>
        <type name="utf8" c:type="gchar*"/>
      </property>
      <property name="dlna-managed" writable="1" transfer-ownership="none">
        <doc xml:space="preserve">The 'dlna:dlnaManaged' attribute.</doc>
        <type name="OCMFlags"/>
      </property>
      <property name="dlna-namespace"
                writable="1"
                construct-only="1"
                transfer-ownership="none">
        <doc xml:space="preserve">Pointer to the DLNA metadata namespace registered with the XML
document containing this object.</doc>
        <type name="gpointer" c:type="gpointer"/>
      </property>
      <property name="genre" writable="1" transfer-ownership="none">
        <doc xml:space="preserve">The genre of this object.</doc>
        <type name="utf8" c:type="gchar*"/>
      </property>
      <property name="id" writable="1" transfer-ownership="none">
        <doc xml:space="preserve">The ID of this object.</doc>
        <type name="utf8" c:type="gchar*"/>
      </property>
      <property name="parent-id" writable="1" transfer-ownership="none">
        <doc xml:space="preserve">The ID of the parent container of this object.</doc>
        <type name="utf8" c:type="gchar*"/>
      </property>
      <property name="pv-namespace"
                writable="1"
                construct-only="1"
                transfer-ownership="none">
        <doc xml:space="preserve">Pointer to the PV metadata namespace registered with the XML
document containing this object.</doc>
        <type name="gpointer" c:type="gpointer"/>
      </property>
      <property name="restricted" writable="1" transfer-ownership="none">
        <doc xml:space="preserve">Whether this object is restricted.</doc>
        <type name="gboolean" c:type="gboolean"/>
      </property>
      <property name="title" writable="1" transfer-ownership="none">
        <doc xml:space="preserve">The title of this object.</doc>
        <type name="utf8" c:type="gchar*"/>
      </property>
      <property name="track-number" writable="1" transfer-ownership="none">
        <doc xml:space="preserve">The original track number of this object.</doc>
        <type name="gint" c:type="gint"/>
      </property>
      <property name="update-id" writable="1" transfer-ownership="none">
        <doc xml:space="preserve">Update ID of this object.</doc>
        <type name="guint" c:type="guint"/>
      </property>
      <property name="upnp-class" writable="1" transfer-ownership="none">
        <doc xml:space="preserve">The UPnP class of this object.</doc>
        <type name="utf8" c:type="gchar*"/>
      </property>
      <property name="upnp-namespace"
                writable="1"
                construct-only="1"
                transfer-ownership="none">
        <doc xml:space="preserve">Pointer to the UPnP namespace registered with the XML document
containing this object.</doc>
        <type name="gpointer" c:type="gpointer"/>
      </property>
      <property name="write-status" writable="1" transfer-ownership="none">
        <doc xml:space="preserve">The write status of this object.</doc>
        <type name="utf8" c:type="gchar*"/>
      </property>
      <property name="xml-doc"
                stability="Private"
                readable="0"
                writable="1"
                construct-only="1"
                transfer-ownership="none">
        <doc xml:space="preserve">The reference to XML document containing this object.

Internal property.</doc>
        <type name="GUPnP.XMLDoc"/>
      </property>
      <property name="xml-node"
                writable="1"
                construct-only="1"
                transfer-ownership="none">
        <doc xml:space="preserve">The pointer to object node in XML document.</doc>
        <type name="gpointer" c:type="gpointer"/>
      </property>
      <field name="parent">
        <type name="GObject.Object" c:type="GObject"/>
      </field>
      <field name="priv">
        <type name="DIDLLiteObjectPrivate"
              c:type="GUPnPDIDLLiteObjectPrivate*"/>
      </field>
    </class>
    <record name="DIDLLiteObjectClass"
            c:type="GUPnPDIDLLiteObjectClass"
            glib:is-gtype-struct-for="DIDLLiteObject">
      <field name="parent_class">
        <type name="GObject.ObjectClass" c:type="GObjectClass"/>
      </field>
      <field name="_gupnp_reserved1" introspectable="0">
        <callback name="_gupnp_reserved1">
          <return-value transfer-ownership="none">
            <type name="none" c:type="void"/>
          </return-value>
        </callback>
      </field>
      <field name="_gupnp_reserved2" introspectable="0">
        <callback name="_gupnp_reserved2">
          <return-value transfer-ownership="none">
            <type name="none" c:type="void"/>
          </return-value>
        </callback>
      </field>
      <field name="_gupnp_reserved3" introspectable="0">
        <callback name="_gupnp_reserved3">
          <return-value transfer-ownership="none">
            <type name="none" c:type="void"/>
          </return-value>
        </callback>
      </field>
      <field name="_gupnp_reserved4" introspectable="0">
        <callback name="_gupnp_reserved4">
          <return-value transfer-ownership="none">
            <type name="none" c:type="void"/>
          </return-value>
        </callback>
      </field>
    </record>
    <record name="DIDLLiteObjectPrivate"
            c:type="GUPnPDIDLLiteObjectPrivate"
            disguised="1">
    </record>
    <class name="DIDLLiteParser"
           c:symbol-prefix="didl_lite_parser"
           c:type="GUPnPDIDLLiteParser"
           parent="GObject.Object"
           glib:type-name="GUPnPDIDLLiteParser"
           glib:get-type="gupnp_didl_lite_parser_get_type"
           glib:type-struct="DIDLLiteParserClass">
      <constructor name="new" c:identifier="gupnp_didl_lite_parser_new">
        <return-value transfer-ownership="full">
          <doc xml:space="preserve">A new #GUPnPDIDLLiteParser object.</doc>
          <type name="DIDLLiteParser" c:type="GUPnPDIDLLiteParser*"/>
        </return-value>
      </constructor>
      <virtual-method name="container_available">
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="parser" transfer-ownership="none">
            <type name="DIDLLiteParser" c:type="GUPnPDIDLLiteParser*"/>
          </instance-parameter>
          <parameter name="container" transfer-ownership="none">
            <type name="DIDLLiteContainer" c:type="GUPnPDIDLLiteContainer*"/>
          </parameter>
        </parameters>
      </virtual-method>
      <virtual-method name="item_available">
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="parser" transfer-ownership="none">
            <type name="DIDLLiteParser" c:type="GUPnPDIDLLiteParser*"/>
          </instance-parameter>
          <parameter name="item" transfer-ownership="none">
            <type name="DIDLLiteItem" c:type="GUPnPDIDLLiteItem*"/>
          </parameter>
        </parameters>
      </virtual-method>
      <virtual-method name="object_available">
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="parser" transfer-ownership="none">
            <type name="DIDLLiteParser" c:type="GUPnPDIDLLiteParser*"/>
          </instance-parameter>
          <parameter name="object" transfer-ownership="none">
            <type name="DIDLLiteObject" c:type="GUPnPDIDLLiteObject*"/>
          </parameter>
        </parameters>
      </virtual-method>
      <method name="parse_didl"
              c:identifier="gupnp_didl_lite_parser_parse_didl"
              throws="1">
        <doc xml:space="preserve">Parses DIDL-Lite XML string @didl, emitting the ::object-available,
::item-available and ::container-available signals appropriately during the
process.</doc>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">TRUE on success.</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <instance-parameter name="parser" transfer-ownership="none">
            <doc xml:space="preserve">A #GUPnPDIDLLiteParser</doc>
            <type name="DIDLLiteParser" c:type="GUPnPDIDLLiteParser*"/>
          </instance-parameter>
          <parameter name="didl" transfer-ownership="none">
            <doc xml:space="preserve">The DIDL-Lite XML string to be parsed</doc>
            <type name="utf8" c:type="const char*"/>
          </parameter>
        </parameters>
      </method>
      <field name="parent">
        <type name="GObject.Object" c:type="GObject"/>
      </field>
      <field name="gupnp_reserved">
        <type name="gpointer" c:type="gpointer"/>
      </field>
      <glib:signal name="container-available" when="last">
        <doc xml:space="preserve">The ::container-available signal is emitted each time a container is
found in the DIDL-Lite XML being parsed.</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <parameter name="container" transfer-ownership="none">
            <doc xml:space="preserve">The now available #GUPnPDIDLLiteContainer</doc>
            <type name="DIDLLiteContainer"/>
          </parameter>
        </parameters>
      </glib:signal>
      <glib:signal name="item-available" when="last">
        <doc xml:space="preserve">The ::item-available signal is emitted each time an item is found in
the DIDL-Lite XML being parsed.</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <parameter name="item" transfer-ownership="none">
            <doc xml:space="preserve">The now available #GUPnPDIDLLiteItem</doc>
            <type name="DIDLLiteItem"/>
          </parameter>
        </parameters>
      </glib:signal>
      <glib:signal name="object-available" when="last">
        <doc xml:space="preserve">The ::object-available signal is emitted each time an object is
found in the DIDL-Lite XML being parsed.</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <parameter name="object" transfer-ownership="none">
            <doc xml:space="preserve">The now available #GUPnPDIDLLiteObject</doc>
            <type name="DIDLLiteObject"/>
          </parameter>
        </parameters>
      </glib:signal>
    </class>
    <record name="DIDLLiteParserClass"
            c:type="GUPnPDIDLLiteParserClass"
            glib:is-gtype-struct-for="DIDLLiteParser">
      <field name="parent_class">
        <type name="GObject.ObjectClass" c:type="GObjectClass"/>
      </field>
      <field name="object_available">
        <callback name="object_available">
          <return-value transfer-ownership="none">
            <type name="none" c:type="void"/>
          </return-value>
          <parameters>
            <parameter name="parser" transfer-ownership="none">
              <type name="DIDLLiteParser" c:type="GUPnPDIDLLiteParser*"/>
            </parameter>
            <parameter name="object" transfer-ownership="none">
              <type name="DIDLLiteObject" c:type="GUPnPDIDLLiteObject*"/>
            </parameter>
          </parameters>
        </callback>
      </field>
      <field name="item_available">
        <callback name="item_available">
          <return-value transfer-ownership="none">
            <type name="none" c:type="void"/>
          </return-value>
          <parameters>
            <parameter name="parser" transfer-ownership="none">
              <type name="DIDLLiteParser" c:type="GUPnPDIDLLiteParser*"/>
            </parameter>
            <parameter name="item" transfer-ownership="none">
              <type name="DIDLLiteItem" c:type="GUPnPDIDLLiteItem*"/>
            </parameter>
          </parameters>
        </callback>
      </field>
      <field name="container_available">
        <callback name="container_available">
          <return-value transfer-ownership="none">
            <type name="none" c:type="void"/>
          </return-value>
          <parameters>
            <parameter name="parser" transfer-ownership="none">
              <type name="DIDLLiteParser" c:type="GUPnPDIDLLiteParser*"/>
            </parameter>
            <parameter name="container" transfer-ownership="none">
              <type name="DIDLLiteContainer" c:type="GUPnPDIDLLiteContainer*"/>
            </parameter>
          </parameters>
        </callback>
      </field>
      <field name="_gupnp_reserved1" introspectable="0">
        <callback name="_gupnp_reserved1">
          <return-value transfer-ownership="none">
            <type name="none" c:type="void"/>
          </return-value>
        </callback>
      </field>
      <field name="_gupnp_reserved2" introspectable="0">
        <callback name="_gupnp_reserved2">
          <return-value transfer-ownership="none">
            <type name="none" c:type="void"/>
          </return-value>
        </callback>
      </field>
      <field name="_gupnp_reserved3" introspectable="0">
        <callback name="_gupnp_reserved3">
          <return-value transfer-ownership="none">
            <type name="none" c:type="void"/>
          </return-value>
        </callback>
      </field>
      <field name="_gupnp_reserved4" introspectable="0">
        <callback name="_gupnp_reserved4">
          <return-value transfer-ownership="none">
            <type name="none" c:type="void"/>
          </return-value>
        </callback>
      </field>
      <field name="_gupnp_reserved5" introspectable="0">
        <callback name="_gupnp_reserved5">
          <return-value transfer-ownership="none">
            <type name="none" c:type="void"/>
          </return-value>
        </callback>
      </field>
    </record>
    <class name="DIDLLiteResource"
           c:symbol-prefix="didl_lite_resource"
           c:type="GUPnPDIDLLiteResource"
           parent="GObject.Object"
           glib:type-name="GUPnPDIDLLiteResource"
           glib:get-type="gupnp_didl_lite_resource_get_type"
           glib:type-struct="DIDLLiteResourceClass">
      <method name="get_audio_channels"
              c:identifier="gupnp_didl_lite_resource_get_audio_channels">
        <doc xml:space="preserve">Get the number of audio channels in the @resource.</doc>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">The number of audio channels in the @resource or -1.</doc>
          <type name="gint" c:type="int"/>
        </return-value>
        <parameters>
          <instance-parameter name="resource" transfer-ownership="none">
            <doc xml:space="preserve">A #GUPnPDIDLLiteResource</doc>
            <type name="DIDLLiteResource" c:type="GUPnPDIDLLiteResource*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_bitrate"
              c:identifier="gupnp_didl_lite_resource_get_bitrate">
        <doc xml:space="preserve">Get the bitrate (in bytes per second) of the @resource.</doc>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">The bitrate (in bytes per second) of the @resource or -1.</doc>
          <type name="gint" c:type="int"/>
        </return-value>
        <parameters>
          <instance-parameter name="resource" transfer-ownership="none">
            <doc xml:space="preserve">A #GUPnPDIDLLiteResource</doc>
            <type name="DIDLLiteResource" c:type="GUPnPDIDLLiteResource*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_bits_per_sample"
              c:identifier="gupnp_didl_lite_resource_get_bits_per_sample">
        <doc xml:space="preserve">Get the sample size of the @resource.</doc>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">The number of bits per sample of the @resource or -1.</doc>
          <type name="gint" c:type="int"/>
        </return-value>
        <parameters>
          <instance-parameter name="resource" transfer-ownership="none">
            <doc xml:space="preserve">A #GUPnPDIDLLiteResource</doc>
            <type name="DIDLLiteResource" c:type="GUPnPDIDLLiteResource*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_cleartext_size"
              c:identifier="gupnp_didl_lite_resource_get_cleartext_size">
        <doc xml:space="preserve">Get the size (in bytes) of the @resource.</doc>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">The size (in bytes) of the @resource or -1.</doc>
          <type name="gint64" c:type="gint64"/>
        </return-value>
        <parameters>
          <instance-parameter name="resource" transfer-ownership="none">
            <doc xml:space="preserve">A #GUPnPDIDLLiteResource</doc>
            <type name="DIDLLiteResource" c:type="GUPnPDIDLLiteResource*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_color_depth"
              c:identifier="gupnp_didl_lite_resource_get_color_depth">
        <doc xml:space="preserve">Get the color-depth of this image/video resource.</doc>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">The color depth of the @resource or -1.</doc>
          <type name="gint" c:type="int"/>
        </return-value>
        <parameters>
          <instance-parameter name="resource" transfer-ownership="none">
            <doc xml:space="preserve">A #GUPnPDIDLLiteResource</doc>
            <type name="DIDLLiteResource" c:type="GUPnPDIDLLiteResource*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_dlna_namespace"
              c:identifier="gupnp_didl_lite_resource_get_dlna_namespace">
        <doc xml:space="preserve">Get the pointer to the DLNA metadata namespace registered with the XML
document containing this object.</doc>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">The pointer to DLNA namespace in XML document.</doc>
          <type name="libxml2.NsPtr" c:type="xmlNsPtr"/>
        </return-value>
        <parameters>
          <instance-parameter name="resource" transfer-ownership="none">
            <doc xml:space="preserve">The #GUPnPDIDLLiteObject</doc>
            <type name="DIDLLiteResource" c:type="GUPnPDIDLLiteResource*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_duration"
              c:identifier="gupnp_didl_lite_resource_get_duration">
        <doc xml:space="preserve">Get the duration (in seconds) of the @resource.</doc>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">The duration (in seconds) of the @resource or -1.</doc>
          <type name="glong" c:type="long"/>
        </return-value>
        <parameters>
          <instance-parameter name="resource" transfer-ownership="none">
            <doc xml:space="preserve">A #GUPnPDIDLLiteResource</doc>
            <type name="DIDLLiteResource" c:type="GUPnPDIDLLiteResource*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_height"
              c:identifier="gupnp_didl_lite_resource_get_height">
        <doc xml:space="preserve">Get the height of this image/video resource.</doc>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">The height of the @resource or -1.</doc>
          <type name="gint" c:type="int"/>
        </return-value>
        <parameters>
          <instance-parameter name="resource" transfer-ownership="none">
            <doc xml:space="preserve">A #GUPnPDIDLLiteResource</doc>
            <type name="DIDLLiteResource" c:type="GUPnPDIDLLiteResource*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_import_uri"
              c:identifier="gupnp_didl_lite_resource_get_import_uri">
        <doc xml:space="preserve">Get the import URI associated with the @resource.</doc>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">The import URI or %NULL.</doc>
          <type name="utf8" c:type="const char*"/>
        </return-value>
        <parameters>
          <instance-parameter name="resource" transfer-ownership="none">
            <doc xml:space="preserve">A #GUPnPDIDLLiteResource</doc>
            <type name="DIDLLiteResource" c:type="GUPnPDIDLLiteResource*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_protection"
              c:identifier="gupnp_didl_lite_resource_get_protection">
        <doc xml:space="preserve">Get the protection system used by the @resource.</doc>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">The protection system in use by the @resource or %NULL.</doc>
          <type name="utf8" c:type="const char*"/>
        </return-value>
        <parameters>
          <instance-parameter name="resource" transfer-ownership="none">
            <doc xml:space="preserve">A #GUPnPDIDLLiteResource</doc>
            <type name="DIDLLiteResource" c:type="GUPnPDIDLLiteResource*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_protocol_info"
              c:identifier="gupnp_didl_lite_resource_get_protocol_info">
        <doc xml:space="preserve">Get the protocol info associated with the @resource.</doc>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">The protocol info associated with the @resource or %NULL. The
returned object must not be unrefed.</doc>
          <type name="ProtocolInfo" c:type="GUPnPProtocolInfo*"/>
        </return-value>
        <parameters>
          <instance-parameter name="resource" transfer-ownership="none">
            <doc xml:space="preserve">A #GUPnPDIDLLiteResource</doc>
            <type name="DIDLLiteResource" c:type="GUPnPDIDLLiteResource*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_pv_namespace"
              c:identifier="gupnp_didl_lite_resource_get_pv_namespace">
        <doc xml:space="preserve">Get the pointer to the DLNA metadata namespace registered with the XML
document containing this object.</doc>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">The pointer to DLNA namespace in XML document.</doc>
          <type name="libxml2.NsPtr" c:type="xmlNsPtr"/>
        </return-value>
        <parameters>
          <instance-parameter name="resource" transfer-ownership="none">
            <doc xml:space="preserve">The #GUPnPDIDLLiteObject</doc>
            <type name="DIDLLiteResource" c:type="GUPnPDIDLLiteResource*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_sample_freq"
              c:identifier="gupnp_didl_lite_resource_get_sample_freq">
        <doc xml:space="preserve">Get the sample frequency of the @resource.</doc>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">The sample frequency of the @resource or -1.</doc>
          <type name="gint" c:type="int"/>
        </return-value>
        <parameters>
          <instance-parameter name="resource" transfer-ownership="none">
            <doc xml:space="preserve">A #GUPnPDIDLLiteResource</doc>
            <type name="DIDLLiteResource" c:type="GUPnPDIDLLiteResource*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_size" c:identifier="gupnp_didl_lite_resource_get_size">
        <doc xml:space="preserve">Get the size (in bytes) of the @resource.</doc>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">The size (in bytes) of the @resource or -1.</doc>
          <type name="glong" c:type="long"/>
        </return-value>
        <parameters>
          <instance-parameter name="resource" transfer-ownership="none">
            <doc xml:space="preserve">A #GUPnPDIDLLiteResource</doc>
            <type name="DIDLLiteResource" c:type="GUPnPDIDLLiteResource*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_size64"
              c:identifier="gupnp_didl_lite_resource_get_size64">
        <doc xml:space="preserve">Get the size (in bytes) of the @resource.</doc>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">The size (in bytes) of the @resource or -1.</doc>
          <type name="gint64" c:type="gint64"/>
        </return-value>
        <parameters>
          <instance-parameter name="resource" transfer-ownership="none">
            <doc xml:space="preserve">A #GUPnPDIDLLiteResource</doc>
            <type name="DIDLLiteResource" c:type="GUPnPDIDLLiteResource*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_subtitle_file_type"
              c:identifier="gupnp_didl_lite_resource_get_subtitle_file_type"
              version="0.12.4">
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">The content of the subtitleFileType property or %NULL</doc>
          <type name="utf8" c:type="const char*"/>
        </return-value>
        <parameters>
          <instance-parameter name="resource" transfer-ownership="none">
            <doc xml:space="preserve">A #GUPnPDIDLLiteResource</doc>
            <type name="DIDLLiteResource" c:type="GUPnPDIDLLiteResource*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_subtitle_file_uri"
              c:identifier="gupnp_didl_lite_resource_get_subtitle_file_uri"
              version="0.12.4">
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">The content of the subtitleFileUri property or %NULL when not set.</doc>
          <type name="utf8" c:type="const char*"/>
        </return-value>
        <parameters>
          <instance-parameter name="resource" transfer-ownership="none">
            <doc xml:space="preserve">A #GUPnPDIDLLiteResource</doc>
            <type name="DIDLLiteResource" c:type="GUPnPDIDLLiteResource*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_track_total"
              c:identifier="gupnp_didl_lite_resource_get_track_total">
        <doc xml:space="preserve">Get the total track count of this resource.</doc>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">The total track count of the @resource.</doc>
          <type name="guint" c:type="guint"/>
        </return-value>
        <parameters>
          <instance-parameter name="resource" transfer-ownership="none">
            <doc xml:space="preserve">A #GUPnPDIDLLiteResource</doc>
            <type name="DIDLLiteResource" c:type="GUPnPDIDLLiteResource*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_update_count"
              c:identifier="gupnp_didl_lite_resource_get_update_count">
        <doc xml:space="preserve">Get the update count of this resource.</doc>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">The update count of the @resource.</doc>
          <type name="guint" c:type="guint"/>
        </return-value>
        <parameters>
          <instance-parameter name="resource" transfer-ownership="none">
            <doc xml:space="preserve">A #GUPnPDIDLLiteResource</doc>
            <type name="DIDLLiteResource" c:type="GUPnPDIDLLiteResource*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_uri" c:identifier="gupnp_didl_lite_resource_get_uri">
        <doc xml:space="preserve">Get the URI associated with the @resource.</doc>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">The of URI the @resource or %NULL.</doc>
          <type name="utf8" c:type="const char*"/>
        </return-value>
        <parameters>
          <instance-parameter name="resource" transfer-ownership="none">
            <doc xml:space="preserve">A #GUPnPDIDLLiteResource</doc>
            <type name="DIDLLiteResource" c:type="GUPnPDIDLLiteResource*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_width"
              c:identifier="gupnp_didl_lite_resource_get_width">
        <doc xml:space="preserve">Get the width of this image/video resource.</doc>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">The width of this image/video resource or -1.</doc>
          <type name="gint" c:type="int"/>
        </return-value>
        <parameters>
          <instance-parameter name="resource" transfer-ownership="none">
            <doc xml:space="preserve">A #GUPnPDIDLLiteResource</doc>
            <type name="DIDLLiteResource" c:type="GUPnPDIDLLiteResource*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_xml_node"
              c:identifier="gupnp_didl_lite_resource_get_xml_node">
        <doc xml:space="preserve">Get the pointer to res node in XML document.</doc>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">The pointer to res node in XML document.</doc>
          <type name="libxml2.Node" c:type="xmlNode*"/>
        </return-value>
        <parameters>
          <instance-parameter name="resource" transfer-ownership="none">
            <doc xml:space="preserve">The #GUPnPDIDLLiteResource</doc>
            <type name="DIDLLiteResource" c:type="GUPnPDIDLLiteResource*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="set_audio_channels"
              c:identifier="gupnp_didl_lite_resource_set_audio_channels">
        <doc xml:space="preserve">Set the number of audio channels in the @resource. Passing a negative number
will unset this property.</doc>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">The number of audio channels in the @resource or -1.</doc>
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="resource" transfer-ownership="none">
            <doc xml:space="preserve">A #GUPnPDIDLLiteResource</doc>
            <type name="DIDLLiteResource" c:type="GUPnPDIDLLiteResource*"/>
          </instance-parameter>
          <parameter name="n_channels" transfer-ownership="none">
            <doc xml:space="preserve">The number of channels</doc>
            <type name="gint" c:type="int"/>
          </parameter>
        </parameters>
      </method>
      <method name="set_bitrate"
              c:identifier="gupnp_didl_lite_resource_set_bitrate">
        <doc xml:space="preserve">Set the bitrate (in bytes per second) of the @resource. Passing a negative
number will unset this property.</doc>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">None.</doc>
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="resource" transfer-ownership="none">
            <doc xml:space="preserve">A #GUPnPDIDLLiteResource</doc>
            <type name="DIDLLiteResource" c:type="GUPnPDIDLLiteResource*"/>
          </instance-parameter>
          <parameter name="bitrate" transfer-ownership="none">
            <doc xml:space="preserve">The bitrate</doc>
            <type name="gint" c:type="int"/>
          </parameter>
        </parameters>
      </method>
      <method name="set_bits_per_sample"
              c:identifier="gupnp_didl_lite_resource_set_bits_per_sample">
        <doc xml:space="preserve">Set the sample size of the @resource. Passing a negative number will unset
this property.</doc>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">None.</doc>
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="resource" transfer-ownership="none">
            <doc xml:space="preserve">A #GUPnPDIDLLiteResource</doc>
            <type name="DIDLLiteResource" c:type="GUPnPDIDLLiteResource*"/>
          </instance-parameter>
          <parameter name="sample_size" transfer-ownership="none">
            <doc xml:space="preserve">The number of bits per sample</doc>
            <type name="gint" c:type="int"/>
          </parameter>
        </parameters>
      </method>
      <method name="set_cleartext_size"
              c:identifier="gupnp_didl_lite_resource_set_cleartext_size">
        <doc xml:space="preserve">Set the size (in bytes) of the @resource. Passing a negative number will
unset this property.</doc>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">None.</doc>
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="resource" transfer-ownership="none">
            <doc xml:space="preserve">A #GUPnPDIDLLiteResource</doc>
            <type name="DIDLLiteResource" c:type="GUPnPDIDLLiteResource*"/>
          </instance-parameter>
          <parameter name="cleartext_size" transfer-ownership="none">
            <doc xml:space="preserve">The size (in bytes)</doc>
            <type name="gint64" c:type="gint64"/>
          </parameter>
        </parameters>
      </method>
      <method name="set_color_depth"
              c:identifier="gupnp_didl_lite_resource_set_color_depth">
        <doc xml:space="preserve">Set the color-depth of this image/video resource. Passing a negative number
will unset this property.</doc>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">None.</doc>
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="resource" transfer-ownership="none">
            <doc xml:space="preserve">A #GUPnPDIDLLiteResource</doc>
            <type name="DIDLLiteResource" c:type="GUPnPDIDLLiteResource*"/>
          </instance-parameter>
          <parameter name="color_depth" transfer-ownership="none">
            <doc xml:space="preserve">The color-depth</doc>
            <type name="gint" c:type="int"/>
          </parameter>
        </parameters>
      </method>
      <method name="set_duration"
              c:identifier="gupnp_didl_lite_resource_set_duration">
        <doc xml:space="preserve">Set the duration (in seconds) of the @resource. Passing a negative number
will unset this property.</doc>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">None.</doc>
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="resource" transfer-ownership="none">
            <doc xml:space="preserve">A #GUPnPDIDLLiteResource</doc>
            <type name="DIDLLiteResource" c:type="GUPnPDIDLLiteResource*"/>
          </instance-parameter>
          <parameter name="duration" transfer-ownership="none">
            <doc xml:space="preserve">The duration (in seconds)</doc>
            <type name="glong" c:type="glong"/>
          </parameter>
        </parameters>
      </method>
      <method name="set_height"
              c:identifier="gupnp_didl_lite_resource_set_height">
        <doc xml:space="preserve">Set the height of this image/video resource. Setting both width and height to
a negative number will unset the resolution property.</doc>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">None.</doc>
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="resource" transfer-ownership="none">
            <doc xml:space="preserve">A #GUPnPDIDLLiteResource</doc>
            <type name="DIDLLiteResource" c:type="GUPnPDIDLLiteResource*"/>
          </instance-parameter>
          <parameter name="height" transfer-ownership="none">
            <doc xml:space="preserve">The height</doc>
            <type name="gint" c:type="int"/>
          </parameter>
        </parameters>
      </method>
      <method name="set_import_uri"
              c:identifier="gupnp_didl_lite_resource_set_import_uri">
        <doc xml:space="preserve">Set the import URI associated with the @resource.</doc>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">None.</doc>
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="resource" transfer-ownership="none">
            <doc xml:space="preserve">A #GUPnPDIDLLiteResource</doc>
            <type name="DIDLLiteResource" c:type="GUPnPDIDLLiteResource*"/>
          </instance-parameter>
          <parameter name="import_uri" transfer-ownership="none">
            <doc xml:space="preserve">The URI as string</doc>
            <type name="utf8" c:type="const char*"/>
          </parameter>
        </parameters>
      </method>
      <method name="set_protection"
              c:identifier="gupnp_didl_lite_resource_set_protection">
        <doc xml:space="preserve">Set the protection system used by the @resource. Passing a negative number
will unset this property.</doc>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">None.</doc>
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="resource" transfer-ownership="none">
            <doc xml:space="preserve">A #GUPnPDIDLLiteResource</doc>
            <type name="DIDLLiteResource" c:type="GUPnPDIDLLiteResource*"/>
          </instance-parameter>
          <parameter name="protection" transfer-ownership="none">
            <doc xml:space="preserve">The protection system identifier as string</doc>
            <type name="utf8" c:type="const char*"/>
          </parameter>
        </parameters>
      </method>
      <method name="set_protocol_info"
              c:identifier="gupnp_didl_lite_resource_set_protocol_info">
        <doc xml:space="preserve">Set the protocol info associated with the @resource.</doc>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">None.</doc>
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="resource" transfer-ownership="none">
            <doc xml:space="preserve">A #GUPnPDIDLLiteResource</doc>
            <type name="DIDLLiteResource" c:type="GUPnPDIDLLiteResource*"/>
          </instance-parameter>
          <parameter name="info" transfer-ownership="none">
            <doc xml:space="preserve">The protocol string</doc>
            <type name="ProtocolInfo" c:type="GUPnPProtocolInfo*"/>
          </parameter>
        </parameters>
      </method>
      <method name="set_sample_freq"
              c:identifier="gupnp_didl_lite_resource_set_sample_freq">
        <doc xml:space="preserve">Set the sample frequency of the @resource. Passing a negative number will
unset this property.</doc>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">None.</doc>
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="resource" transfer-ownership="none">
            <doc xml:space="preserve">A #GUPnPDIDLLiteResource</doc>
            <type name="DIDLLiteResource" c:type="GUPnPDIDLLiteResource*"/>
          </instance-parameter>
          <parameter name="sample_freq" transfer-ownership="none">
            <doc xml:space="preserve">The sample frequency</doc>
            <type name="gint" c:type="int"/>
          </parameter>
        </parameters>
      </method>
      <method name="set_size" c:identifier="gupnp_didl_lite_resource_set_size">
        <doc xml:space="preserve">Set the size (in bytes) of the @resource. Passing a negative number will
unset this property.</doc>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">None.</doc>
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="resource" transfer-ownership="none">
            <doc xml:space="preserve">A #GUPnPDIDLLiteResource</doc>
            <type name="DIDLLiteResource" c:type="GUPnPDIDLLiteResource*"/>
          </instance-parameter>
          <parameter name="size" transfer-ownership="none">
            <doc xml:space="preserve">The size (in bytes)</doc>
            <type name="glong" c:type="glong"/>
          </parameter>
        </parameters>
      </method>
      <method name="set_size64"
              c:identifier="gupnp_didl_lite_resource_set_size64">
        <doc xml:space="preserve">Set the size (in bytes) of the @resource. Passing a negative number will
unset this property.</doc>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">None.</doc>
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="resource" transfer-ownership="none">
            <doc xml:space="preserve">A #GUPnPDIDLLiteResource</doc>
            <type name="DIDLLiteResource" c:type="GUPnPDIDLLiteResource*"/>
          </instance-parameter>
          <parameter name="size" transfer-ownership="none">
            <doc xml:space="preserve">The size (in bytes)</doc>
            <type name="gint64" c:type="gint64"/>
          </parameter>
        </parameters>
      </method>
      <method name="set_subtitle_file_type"
              c:identifier="gupnp_didl_lite_resource_set_subtitle_file_type"
              version="0.12.4">
        <doc xml:space="preserve">Set the type of an external subtitle file, specified via
pv:subtitleFileUri using gupnp_didl_lite_resource_set_subtitle_file_uri().

When @type is %NULL the value is removed.</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="resource" transfer-ownership="none">
            <doc xml:space="preserve">A #GUPnPDIDLLiteResource</doc>
            <type name="DIDLLiteResource" c:type="GUPnPDIDLLiteResource*"/>
          </instance-parameter>
          <parameter name="type"
                     transfer-ownership="none"
                     nullable="1"
                     allow-none="1">
            <doc xml:space="preserve">An URI to an external subtitle file</doc>
            <type name="utf8" c:type="const char*"/>
          </parameter>
        </parameters>
      </method>
      <method name="set_subtitle_file_uri"
              c:identifier="gupnp_didl_lite_resource_set_subtitle_file_uri"
              version="0.12.4">
        <doc xml:space="preserve">Set the URI of an external subtitle file to be used with this resource.
When @uri is %NULL the value is removed.</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="resource" transfer-ownership="none">
            <doc xml:space="preserve">A #GUPnPDIDLLiteResource</doc>
            <type name="DIDLLiteResource" c:type="GUPnPDIDLLiteResource*"/>
          </instance-parameter>
          <parameter name="uri"
                     transfer-ownership="none"
                     nullable="1"
                     allow-none="1">
            <doc xml:space="preserve">An URI to an external subtitle file or %NULL to remove.</doc>
            <type name="utf8" c:type="const char*"/>
          </parameter>
        </parameters>
      </method>
      <method name="set_track_total"
              c:identifier="gupnp_didl_lite_resource_set_track_total">
        <doc xml:space="preserve">Set the total number of tracks in this resource.</doc>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">None.</doc>
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="resource" transfer-ownership="none">
            <doc xml:space="preserve">A #GUPnPDIDLLiteResource</doc>
            <type name="DIDLLiteResource" c:type="GUPnPDIDLLiteResource*"/>
          </instance-parameter>
          <parameter name="track_total" transfer-ownership="none">
            <doc xml:space="preserve">The total number of tracks in this resource</doc>
            <type name="guint" c:type="guint"/>
          </parameter>
        </parameters>
      </method>
      <method name="set_update_count"
              c:identifier="gupnp_didl_lite_resource_set_update_count">
        <doc xml:space="preserve">Set the update count of this resource.</doc>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">None.</doc>
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="resource" transfer-ownership="none">
            <doc xml:space="preserve">A #GUPnPDIDLLiteResource</doc>
            <type name="DIDLLiteResource" c:type="GUPnPDIDLLiteResource*"/>
          </instance-parameter>
          <parameter name="update_count" transfer-ownership="none">
            <doc xml:space="preserve">The update_count</doc>
            <type name="guint" c:type="guint"/>
          </parameter>
        </parameters>
      </method>
      <method name="set_uri" c:identifier="gupnp_didl_lite_resource_set_uri">
        <doc xml:space="preserve">Set the URI associated with the @resource.</doc>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">None.</doc>
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="resource" transfer-ownership="none">
            <doc xml:space="preserve">A #GUPnPDIDLLiteResource</doc>
            <type name="DIDLLiteResource" c:type="GUPnPDIDLLiteResource*"/>
          </instance-parameter>
          <parameter name="uri" transfer-ownership="none">
            <doc xml:space="preserve">The URI as string</doc>
            <type name="utf8" c:type="const char*"/>
          </parameter>
        </parameters>
      </method>
      <method name="set_width"
              c:identifier="gupnp_didl_lite_resource_set_width">
        <doc xml:space="preserve">Set the width of this image/video resource. Setting both width and height to
a negative number will unset the resolution property.</doc>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">None.</doc>
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="resource" transfer-ownership="none">
            <doc xml:space="preserve">A #GUPnPDIDLLiteResource</doc>
            <type name="DIDLLiteResource" c:type="GUPnPDIDLLiteResource*"/>
          </instance-parameter>
          <parameter name="width" transfer-ownership="none">
            <doc xml:space="preserve">The width</doc>
            <type name="gint" c:type="int"/>
          </parameter>
        </parameters>
      </method>
      <method name="track_total_is_set"
              c:identifier="gupnp_didl_lite_resource_track_total_is_set">
        <doc xml:space="preserve">Check whether the total track count property of this resource is set.</doc>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">%TRUE if set, otherwise %FALSE.</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <instance-parameter name="resource" transfer-ownership="none">
            <doc xml:space="preserve">A #GUPnPDIDLLiteResource</doc>
            <type name="DIDLLiteResource" c:type="GUPnPDIDLLiteResource*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="unset_track_total"
              c:identifier="gupnp_didl_lite_resource_unset_track_total">
        <doc xml:space="preserve">Unset the total track count of this resource.</doc>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">None.</doc>
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="resource" transfer-ownership="none">
            <doc xml:space="preserve">A #GUPnPDIDLLiteResource</doc>
            <type name="DIDLLiteResource" c:type="GUPnPDIDLLiteResource*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="unset_update_count"
              c:identifier="gupnp_didl_lite_resource_unset_update_count">
        <doc xml:space="preserve">Unset the update count of this resource.</doc>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">None.</doc>
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="resource" transfer-ownership="none">
            <doc xml:space="preserve">A #GUPnPDIDLLiteResource</doc>
            <type name="DIDLLiteResource" c:type="GUPnPDIDLLiteResource*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="update_count_is_set"
              c:identifier="gupnp_didl_lite_resource_update_count_is_set">
        <doc xml:space="preserve">Check whether the update count property of this resource is set.</doc>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">%TRUE if set, otherwise %FALSE.</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <instance-parameter name="resource" transfer-ownership="none">
            <doc xml:space="preserve">A #GUPnPDIDLLiteResource</doc>
            <type name="DIDLLiteResource" c:type="GUPnPDIDLLiteResource*"/>
          </instance-parameter>
        </parameters>
      </method>
      <property name="audio-channels" writable="1" transfer-ownership="none">
        <doc xml:space="preserve">The number of audio channels in this resource.</doc>
        <type name="gint" c:type="gint"/>
      </property>
      <property name="bitrate" writable="1" transfer-ownership="none">
        <doc xml:space="preserve">The bitrate of this resource.</doc>
        <type name="gint" c:type="gint"/>
      </property>
      <property name="bits-per-sample" writable="1" transfer-ownership="none">
        <doc xml:space="preserve">The sample size of this resource.</doc>
        <type name="gint" c:type="gint"/>
      </property>
      <property name="cleartext-size" writable="1" transfer-ownership="none">
        <type name="gint64" c:type="gint64"/>
      </property>
      <property name="color-depth" writable="1" transfer-ownership="none">
        <doc xml:space="preserve">The color-depth of this image/video resource.</doc>
        <type name="gint" c:type="gint"/>
      </property>
      <property name="dlna-namespace"
                writable="1"
                construct-only="1"
                transfer-ownership="none">
        <doc xml:space="preserve">Pointer to the DLNA metadata namespace registered with the
resource object.</doc>
        <type name="gpointer" c:type="gpointer"/>
      </property>
      <property name="duration" writable="1" transfer-ownership="none">
        <doc xml:space="preserve">The duration (in seconds) of this resource.</doc>
        <type name="glong" c:type="glong"/>
      </property>
      <property name="height" writable="1" transfer-ownership="none">
        <doc xml:space="preserve">The height of this image/video resource.</doc>
        <type name="gint" c:type="gint"/>
      </property>
      <property name="import-uri" writable="1" transfer-ownership="none">
        <doc xml:space="preserve">The Import URI associated with this resource.</doc>
        <type name="utf8" c:type="gchar*"/>
      </property>
      <property name="protection" writable="1" transfer-ownership="none">
        <doc xml:space="preserve">The protection system used for this resource.</doc>
        <type name="utf8" c:type="gchar*"/>
      </property>
      <property name="protocol-info" writable="1" transfer-ownership="none">
        <doc xml:space="preserve">The protocol info associated with this resource.</doc>
        <type name="ProtocolInfo"/>
      </property>
      <property name="pv-namespace"
                writable="1"
                construct-only="1"
                transfer-ownership="none">
        <doc xml:space="preserve">Pointer to the PV metadata namespace registered with the
resource object.</doc>
        <type name="gpointer" c:type="gpointer"/>
      </property>
      <property name="sample-freq" writable="1" transfer-ownership="none">
        <doc xml:space="preserve">The sample frequency of this resource.</doc>
        <type name="gint" c:type="gint"/>
      </property>
      <property name="size" writable="1" transfer-ownership="none">
        <doc xml:space="preserve">The size (in bytes) of this resource.</doc>
        <type name="glong" c:type="glong"/>
      </property>
      <property name="size64" writable="1" transfer-ownership="none">
        <doc xml:space="preserve">The size (in bytes) of this resource.</doc>
        <type name="gint64" c:type="gint64"/>
      </property>
      <property name="subtitle-file-type"
                writable="1"
                transfer-ownership="none">
        <doc xml:space="preserve">Type of external subtitle file. Usually SRT or SMI.</doc>
        <type name="utf8" c:type="gchar*"/>
      </property>
      <property name="subtitle-file-uri"
                writable="1"
                transfer-ownership="none">
        <doc xml:space="preserve">Uri to external subtitle file.</doc>
        <type name="utf8" c:type="gchar*"/>
      </property>
      <property name="track-total" writable="1" transfer-ownership="none">
        <doc xml:space="preserve">Number of tracks in a DIDL_S or DIDL_V resource.</doc>
        <type name="guint" c:type="guint"/>
      </property>
      <property name="update-count" writable="1" transfer-ownership="none">
        <type name="guint" c:type="guint"/>
      </property>
      <property name="uri" writable="1" transfer-ownership="none">
        <doc xml:space="preserve">The URI associated with this resource.</doc>
        <type name="utf8" c:type="gchar*"/>
      </property>
      <property name="width" writable="1" transfer-ownership="none">
        <doc xml:space="preserve">The width of this image/video resource.</doc>
        <type name="gint" c:type="gint"/>
      </property>
      <property name="xml-doc"
                stability="Private"
                readable="0"
                writable="1"
                construct-only="1"
                transfer-ownership="none">
        <doc xml:space="preserve">The reference to XML document containing this object.

Internal property.</doc>
        <type name="GUPnP.XMLDoc"/>
      </property>
      <property name="xml-node"
                writable="1"
                construct-only="1"
                transfer-ownership="none">
        <doc xml:space="preserve">The pointer to res node in XML document.</doc>
        <type name="gpointer" c:type="gpointer"/>
      </property>
      <field name="parent">
        <type name="GObject.Object" c:type="GObject"/>
      </field>
      <field name="priv">
        <type name="DIDLLiteResourcePrivate"
              c:type="GUPnPDIDLLiteResourcePrivate*"/>
      </field>
    </class>
    <record name="DIDLLiteResourceClass"
            c:type="GUPnPDIDLLiteResourceClass"
            glib:is-gtype-struct-for="DIDLLiteResource">
      <field name="parent_class">
        <type name="GObject.ObjectClass" c:type="GObjectClass"/>
      </field>
      <field name="_gupnp_reserved1" introspectable="0">
        <callback name="_gupnp_reserved1">
          <return-value transfer-ownership="none">
            <type name="none" c:type="void"/>
          </return-value>
        </callback>
      </field>
      <field name="_gupnp_reserved2" introspectable="0">
        <callback name="_gupnp_reserved2">
          <return-value transfer-ownership="none">
            <type name="none" c:type="void"/>
          </return-value>
        </callback>
      </field>
      <field name="_gupnp_reserved3" introspectable="0">
        <callback name="_gupnp_reserved3">
          <return-value transfer-ownership="none">
            <type name="none" c:type="void"/>
          </return-value>
        </callback>
      </field>
      <field name="_gupnp_reserved4" introspectable="0">
        <callback name="_gupnp_reserved4">
          <return-value transfer-ownership="none">
            <type name="none" c:type="void"/>
          </return-value>
        </callback>
      </field>
    </record>
    <record name="DIDLLiteResourcePrivate"
            c:type="GUPnPDIDLLiteResourcePrivate"
            disguised="1">
    </record>
    <class name="DIDLLiteWriter"
           c:symbol-prefix="didl_lite_writer"
           c:type="GUPnPDIDLLiteWriter"
           parent="GObject.Object"
           glib:type-name="GUPnPDIDLLiteWriter"
           glib:get-type="gupnp_didl_lite_writer_get_type"
           glib:type-struct="DIDLLiteWriterClass">
      <constructor name="new" c:identifier="gupnp_didl_lite_writer_new">
        <doc xml:space="preserve">Note: @language should always be set to %NULL, DLNA does not support the
language parameter.</doc>
        <return-value transfer-ownership="full">
          <doc xml:space="preserve">A new #GUPnPDIDLLiteWriter object.</doc>
          <type name="DIDLLiteWriter" c:type="GUPnPDIDLLiteWriter*"/>
        </return-value>
        <parameters>
          <parameter name="language"
                     transfer-ownership="none"
                     nullable="1"
                     allow-none="1">
            <doc xml:space="preserve">The language the DIDL-Lite fragment is in, or %NULL</doc>
            <type name="utf8" c:type="const char*"/>
          </parameter>
        </parameters>
      </constructor>
      <method name="add_container"
              c:identifier="gupnp_didl_lite_writer_add_container">
        <doc xml:space="preserve">Creates a new container, attaches it to @writer and returns it.</doc>
        <return-value transfer-ownership="full">
          <doc xml:space="preserve">A new #GUPnPDIDLLiteContainer object. Unref after usage.</doc>
          <type name="DIDLLiteContainer" c:type="GUPnPDIDLLiteContainer*"/>
        </return-value>
        <parameters>
          <instance-parameter name="writer" transfer-ownership="none">
            <doc xml:space="preserve">A #GUPnPDIDLLiteWriter</doc>
            <type name="DIDLLiteWriter" c:type="GUPnPDIDLLiteWriter*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="add_descriptor"
              c:identifier="gupnp_didl_lite_writer_add_descriptor">
        <doc xml:space="preserve">Creates a new descriptor, attaches it to @object and returns it.</doc>
        <return-value transfer-ownership="full">
          <doc xml:space="preserve">A new #GUPnPDIDLLiteDescriptor object. Unref after usage.</doc>
          <type name="DIDLLiteDescriptor" c:type="GUPnPDIDLLiteDescriptor*"/>
        </return-value>
        <parameters>
          <instance-parameter name="writer" transfer-ownership="none">
            <doc xml:space="preserve">A #GUPnPDIDLLiteWriter</doc>
            <type name="DIDLLiteWriter" c:type="GUPnPDIDLLiteWriter*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="add_item" c:identifier="gupnp_didl_lite_writer_add_item">
        <doc xml:space="preserve">Creates a new item, attaches it to @writer and returns it.</doc>
        <return-value transfer-ownership="full">
          <doc xml:space="preserve">A new #GUPnPDIDLLiteItem object. Unref after usage.</doc>
          <type name="DIDLLiteItem" c:type="GUPnPDIDLLiteItem*"/>
        </return-value>
        <parameters>
          <instance-parameter name="writer" transfer-ownership="none">
            <doc xml:space="preserve">A #GUPnPDIDLLiteWriter</doc>
            <type name="DIDLLiteWriter" c:type="GUPnPDIDLLiteWriter*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="filter" c:identifier="gupnp_didl_lite_writer_filter">
        <doc xml:space="preserve">Clears the DIDL-Lite XML document of the properties not specified in the
@filter. The passed filter string would typically come from the 'Filter'
argument of Browse or Search actions from a ContentDirectory control point.
Please refer to Section 2.3.15 of UPnP AV ContentDirectory version 3
specification for details on this string.</doc>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">None.</doc>
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="writer" transfer-ownership="none">
            <doc xml:space="preserve">A #GUPnPDIDLLiteWriter</doc>
            <type name="DIDLLiteWriter" c:type="GUPnPDIDLLiteWriter*"/>
          </instance-parameter>
          <parameter name="filter" transfer-ownership="none">
            <doc xml:space="preserve">A filter string</doc>
            <type name="utf8" c:type="const char*"/>
          </parameter>
        </parameters>
      </method>
      <method name="get_language"
              c:identifier="gupnp_didl_lite_writer_get_language">
        <doc xml:space="preserve">Get the language the DIDL-Lite fragment is in.</doc>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">The language of the @writer, or %NULL.</doc>
          <type name="utf8" c:type="const char*"/>
        </return-value>
        <parameters>
          <instance-parameter name="writer" transfer-ownership="none">
            <doc xml:space="preserve">#GUPnPDIDLLiteWriter</doc>
            <type name="DIDLLiteWriter" c:type="GUPnPDIDLLiteWriter*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_string"
              c:identifier="gupnp_didl_lite_writer_get_string">
        <doc xml:space="preserve">Creates a string representation of the DIDL-Lite XML document.</doc>
        <return-value transfer-ownership="full">
          <doc xml:space="preserve">The DIDL-Lite XML string, or %NULL. #g_free after usage.</doc>
          <type name="utf8" c:type="char*"/>
        </return-value>
        <parameters>
          <instance-parameter name="writer" transfer-ownership="none">
            <doc xml:space="preserve">A #GUPnPDIDLLiteWriter</doc>
            <type name="DIDLLiteWriter" c:type="GUPnPDIDLLiteWriter*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_xml_node"
              c:identifier="gupnp_didl_lite_writer_get_xml_node">
        <doc xml:space="preserve">Get the pointer to root node in XML document.</doc>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">The pointer to root node in XML document.</doc>
          <type name="libxml2.Node" c:type="xmlNode*"/>
        </return-value>
        <parameters>
          <instance-parameter name="writer" transfer-ownership="none">
            <doc xml:space="preserve">The #GUPnPDIDLLiteWriter</doc>
            <type name="DIDLLiteWriter" c:type="GUPnPDIDLLiteWriter*"/>
          </instance-parameter>
        </parameters>
      </method>
      <property name="language"
                writable="1"
                construct-only="1"
                transfer-ownership="none">
        <doc xml:space="preserve">The language the DIDL-Lite fragment is in.</doc>
        <type name="utf8" c:type="gchar*"/>
      </property>
      <property name="xml-node" transfer-ownership="none">
        <doc xml:space="preserve">The pointer to root node in XML document.</doc>
        <type name="gpointer" c:type="gpointer"/>
      </property>
      <field name="parent">
        <type name="GObject.Object" c:type="GObject"/>
      </field>
      <field name="priv">
        <type name="DIDLLiteWriterPrivate"
              c:type="GUPnPDIDLLiteWriterPrivate*"/>
      </field>
    </class>
    <record name="DIDLLiteWriterClass"
            c:type="GUPnPDIDLLiteWriterClass"
            glib:is-gtype-struct-for="DIDLLiteWriter">
      <field name="parent_class">
        <type name="GObject.ObjectClass" c:type="GObjectClass"/>
      </field>
      <field name="_gupnp_reserved1" introspectable="0">
        <callback name="_gupnp_reserved1">
          <return-value transfer-ownership="none">
            <type name="none" c:type="void"/>
          </return-value>
        </callback>
      </field>
      <field name="_gupnp_reserved2" introspectable="0">
        <callback name="_gupnp_reserved2">
          <return-value transfer-ownership="none">
            <type name="none" c:type="void"/>
          </return-value>
        </callback>
      </field>
      <field name="_gupnp_reserved3" introspectable="0">
        <callback name="_gupnp_reserved3">
          <return-value transfer-ownership="none">
            <type name="none" c:type="void"/>
          </return-value>
        </callback>
      </field>
      <field name="_gupnp_reserved4" introspectable="0">
        <callback name="_gupnp_reserved4">
          <return-value transfer-ownership="none">
            <type name="none" c:type="void"/>
          </return-value>
        </callback>
      </field>
    </record>
    <record name="DIDLLiteWriterPrivate"
            c:type="GUPnPDIDLLiteWriterPrivate"
            disguised="1">
    </record>
    <constant name="DIDL_LITE_WRITER_NAMESPACE_DC"
              value="dc"
              c:type="GUPNP_DIDL_LITE_WRITER_NAMESPACE_DC">
      <type name="utf8" c:type="gchar*"/>
    </constant>
    <constant name="DIDL_LITE_WRITER_NAMESPACE_DLNA"
              value="dlna"
              c:type="GUPNP_DIDL_LITE_WRITER_NAMESPACE_DLNA">
      <type name="utf8" c:type="gchar*"/>
    </constant>
    <constant name="DIDL_LITE_WRITER_NAMESPACE_PV"
              value="pv"
              c:type="GUPNP_DIDL_LITE_WRITER_NAMESPACE_PV">
      <type name="utf8" c:type="gchar*"/>
    </constant>
    <constant name="DIDL_LITE_WRITER_NAMESPACE_UPNP"
              value="upnp"
              c:type="GUPNP_DIDL_LITE_WRITER_NAMESPACE_UPNP">
      <type name="utf8" c:type="gchar*"/>
    </constant>
    <bitfield name="DLNAConversion"
              glib:type-name="GUPnPDLNAConversion"
              glib:get-type="gupnp_dlna_conversion_get_type"
              c:type="GUPnPDLNAConversion">
      <doc xml:space="preserve">The DLNA conversion flags for a resource.</doc>
      <member name="none"
              value="0"
              c:identifier="GUPNP_DLNA_CONVERSION_NONE"
              glib:nick="none">
        <doc xml:space="preserve">Content is in original source format</doc>
      </member>
      <member name="transcoded"
              value="1"
              c:identifier="GUPNP_DLNA_CONVERSION_TRANSCODED"
              glib:nick="transcoded">
        <doc xml:space="preserve">Content is transcoded</doc>
      </member>
    </bitfield>
    <bitfield name="DLNAFlags"
              glib:type-name="GUPnPDLNAFlags"
              glib:get-type="gupnp_dlna_flags_get_type"
              c:type="GUPnPDLNAFlags">
      <doc xml:space="preserve">The miscellaneous operations supported by a resource. For details on these
flags please refer to section 7.3.37.2 of DLNA Networked Device
Interoperability Guidelines Volume 1, October 2006.

Updated DTCP Flags based on 2011 Guidelines, section 7.4.1.3.23.2</doc>
      <member name="none"
              value="0"
              c:identifier="GUPNP_DLNA_FLAGS_NONE"
              glib:nick="none">
        <doc xml:space="preserve">No flags</doc>
      </member>
      <member name="sender_paced"
              value="2147483648"
              c:identifier="GUPNP_DLNA_FLAGS_SENDER_PACED"
              glib:nick="sender-paced">
        <doc xml:space="preserve">Content source is the clock source during
                                transport</doc>
      </member>
      <member name="time_based_seek"
              value="1073741824"
              c:identifier="GUPNP_DLNA_FLAGS_TIME_BASED_SEEK"
              glib:nick="time-based-seek">
        <doc xml:space="preserve">Limited Operation: time-seek supported</doc>
      </member>
      <member name="byte_based_seek"
              value="536870912"
              c:identifier="GUPNP_DLNA_FLAGS_BYTE_BASED_SEEK"
              glib:nick="byte-based-seek">
        <doc xml:space="preserve">Limited Operation: byte-seek supported</doc>
      </member>
      <member name="play_container"
              value="268435456"
              c:identifier="GUPNP_DLNA_FLAGS_PLAY_CONTAINER"
              glib:nick="play-container">
        <doc xml:space="preserve">Resource supports 'Container Playback'</doc>
      </member>
      <member name="s0_increase"
              value="134217728"
              c:identifier="GUPNP_DLNA_FLAGS_S0_INCREASE"
              glib:nick="s0-increase">
        <doc xml:space="preserve">Content does not have a fixed beginning</doc>
      </member>
      <member name="sn_increase"
              value="67108864"
              c:identifier="GUPNP_DLNA_FLAGS_SN_INCREASE"
              glib:nick="sn-increase">
        <doc xml:space="preserve">Content does not have a fixed end</doc>
      </member>
      <member name="rtsp_pause"
              value="33554432"
              c:identifier="GUPNP_DLNA_FLAGS_RTSP_PAUSE"
              glib:nick="rtsp-pause">
        <doc xml:space="preserve">RTSP resource supports pausing of media
                              transfer</doc>
      </member>
      <member name="streaming_transfer_mode"
              value="16777216"
              c:identifier="GUPNP_DLNA_FLAGS_STREAMING_TRANSFER_MODE"
              glib:nick="streaming-transfer-mode">
        <doc xml:space="preserve">Streaming transfer mode supported</doc>
      </member>
      <member name="interactive_transfer_mode"
              value="8388608"
              c:identifier="GUPNP_DLNA_FLAGS_INTERACTIVE_TRANSFER_MODE"
              glib:nick="interactive-transfer-mode">
        <doc xml:space="preserve">Interactive transfer mode
                                             supported</doc>
      </member>
      <member name="background_transfer_mode"
              value="4194304"
              c:identifier="GUPNP_DLNA_FLAGS_BACKGROUND_TRANSFER_MODE"
              glib:nick="background-transfer-mode">
        <doc xml:space="preserve">Background transfer mode
                                            supported</doc>
      </member>
      <member name="connection_stall"
              value="2097152"
              c:identifier="GUPNP_DLNA_FLAGS_CONNECTION_STALL"
              glib:nick="connection-stall">
        <doc xml:space="preserve">No content transfer when paused.</doc>
      </member>
      <member name="dlna_v15"
              value="1048576"
              c:identifier="GUPNP_DLNA_FLAGS_DLNA_V15"
              glib:nick="dlna-v15">
        <doc xml:space="preserve">DLNAv1.5 version flag</doc>
      </member>
      <member name="link_protected_content"
              value="65536"
              c:identifier="GUPNP_DLNA_FLAGS_LINK_PROTECTED_CONTENT"
              glib:nick="link-protected-content">
        <doc xml:space="preserve">The content is protected.</doc>
      </member>
      <member name="cleartext_byteseek_full"
              value="32768"
              c:identifier="GUPNP_DLNA_FLAGS_CLEAR_TEXT_BYTE_SEEK_FULL"
              glib:nick="cleartext-byteseek-full">
        <doc xml:space="preserve">Full byte seek on cleartext
                                             domain is supported.</doc>
      </member>
      <member name="lop_cleartext_byteseek"
              value="16384"
              c:identifier="GUPNP_DLNA_FLAGS_LOP_CLEAR_TEXT_BYTE_SEEK"
              glib:nick="lop-cleartext-byteseek">
        <doc xml:space="preserve">Limited operations on
                                             byte seek in cleartext domain.</doc>
      </member>
    </bitfield>
    <bitfield name="DLNAOperation"
              glib:type-name="GUPnPDLNAOperation"
              glib:get-type="gupnp_dlna_operation_get_type"
              c:type="GUPnPDLNAOperation">
      <doc xml:space="preserve">The seek operations supported by a resource.</doc>
      <member name="none"
              value="0"
              c:identifier="GUPNP_DLNA_OPERATION_NONE"
              glib:nick="none">
        <doc xml:space="preserve">Resource does not support seeking of any type</doc>
      </member>
      <member name="range"
              value="1"
              c:identifier="GUPNP_DLNA_OPERATION_RANGE"
              glib:nick="range">
        <doc xml:space="preserve">Resource supports byte-seek</doc>
      </member>
      <member name="timeseek"
              value="16"
              c:identifier="GUPNP_DLNA_OPERATION_TIMESEEK"
              glib:nick="timeseek">
        <doc xml:space="preserve">Resource supports time-seek</doc>
      </member>
    </bitfield>
    <class name="Feature"
           c:symbol-prefix="feature"
           c:type="GUPnPFeature"
           parent="GObject.Object"
           glib:type-name="GUPnPFeature"
           glib:get-type="gupnp_feature_get_type"
           glib:type-struct="FeatureClass">
      <method name="get_name" c:identifier="gupnp_feature_get_name">
        <doc xml:space="preserve">Get the name of the @feature.</doc>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">The name of the @feature.</doc>
          <type name="utf8" c:type="const char*"/>
        </return-value>
        <parameters>
          <instance-parameter name="feature" transfer-ownership="none">
            <doc xml:space="preserve">#GUPnPFeature</doc>
            <type name="Feature" c:type="GUPnPFeature*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_object_ids"
              c:identifier="gupnp_feature_get_object_ids">
        <doc xml:space="preserve">Get the object IDs related to the @feature.</doc>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">The object IDs related to the @feature.</doc>
          <type name="utf8" c:type="const char*"/>
        </return-value>
        <parameters>
          <instance-parameter name="feature" transfer-ownership="none">
            <doc xml:space="preserve">#GUPnPFeature</doc>
            <type name="Feature" c:type="GUPnPFeature*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_version" c:identifier="gupnp_feature_get_version">
        <doc xml:space="preserve">Get the version of the @feature.</doc>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">The version of the @feature.</doc>
          <type name="utf8" c:type="const char*"/>
        </return-value>
        <parameters>
          <instance-parameter name="feature" transfer-ownership="none">
            <doc xml:space="preserve">#GUPnPFeature</doc>
            <type name="Feature" c:type="GUPnPFeature*"/>
          </instance-parameter>
        </parameters>
      </method>
      <property name="name"
                writable="1"
                construct-only="1"
                transfer-ownership="none">
        <doc xml:space="preserve">The name of this feature.</doc>
        <type name="utf8" c:type="gchar*"/>
      </property>
      <property name="object-ids"
                writable="1"
                construct-only="1"
                transfer-ownership="none">
        <doc xml:space="preserve">The object IDs related to this feature.</doc>
        <type name="utf8" c:type="gchar*"/>
      </property>
      <property name="version"
                writable="1"
                construct-only="1"
                transfer-ownership="none">
        <doc xml:space="preserve">The version of this feature.</doc>
        <type name="utf8" c:type="gchar*"/>
      </property>
      <field name="parent">
        <type name="GObject.Object" c:type="GObject"/>
      </field>
      <field name="priv">
        <type name="FeaturePrivate" c:type="GUPnPFeaturePrivate*"/>
      </field>
    </class>
    <record name="FeatureClass"
            c:type="GUPnPFeatureClass"
            glib:is-gtype-struct-for="Feature">
      <field name="parent_class">
        <type name="GObject.ObjectClass" c:type="GObjectClass"/>
      </field>
    </record>
    <class name="FeatureListParser"
           c:symbol-prefix="feature_list_parser"
           c:type="GUPnPFeatureListParser"
           parent="GObject.Object"
           glib:type-name="GUPnPFeatureListParser"
           glib:get-type="gupnp_feature_list_parser_get_type"
           glib:type-struct="FeatureListParserClass">
      <constructor name="new" c:identifier="gupnp_feature_list_parser_new">
        <return-value transfer-ownership="full">
          <doc xml:space="preserve">A new #GUPnPFeatureListParser object.</doc>
          <type name="FeatureListParser" c:type="GUPnPFeatureListParser*"/>
        </return-value>
      </constructor>
      <method name="parse_text"
              c:identifier="gupnp_feature_list_parser_parse_text"
              throws="1">
        <doc xml:space="preserve">Parses @text and returns the list of available features.
If an error occured @error will be set.</doc>
        <return-value transfer-ownership="full">
          <doc xml:space="preserve">The list of
features or %NULL if an error occured.</doc>
          <type name="GLib.List" c:type="GList*">
            <type name="Feature"/>
          </type>
        </return-value>
        <parameters>
          <instance-parameter name="parser" transfer-ownership="none">
            <doc xml:space="preserve">A #GUPnPFeatureListParser</doc>
            <type name="FeatureListParser" c:type="GUPnPFeatureListParser*"/>
          </instance-parameter>
          <parameter name="text" transfer-ownership="none">
            <doc xml:space="preserve">The feature list string to be parsed</doc>
            <type name="utf8" c:type="const char*"/>
          </parameter>
        </parameters>
      </method>
      <field name="parent">
        <type name="GObject.Object" c:type="GObject"/>
      </field>
    </class>
    <record name="FeatureListParserClass"
            c:type="GUPnPFeatureListParserClass"
            glib:is-gtype-struct-for="FeatureListParser">
      <field name="parent_class">
        <type name="GObject.ObjectClass" c:type="GObjectClass"/>
      </field>
    </record>
    <record name="FeaturePrivate" c:type="GUPnPFeaturePrivate" disguised="1">
    </record>
    <class name="LastChangeParser"
           c:symbol-prefix="last_change_parser"
           c:type="GUPnPLastChangeParser"
           parent="GObject.Object"
           glib:type-name="GUPnPLastChangeParser"
           glib:get-type="gupnp_last_change_parser_get_type"
           glib:type-struct="LastChangeParserClass">
      <constructor name="new" c:identifier="gupnp_last_change_parser_new">
        <return-value transfer-ownership="full">
          <doc xml:space="preserve">A new #GUPnPLastChangeParser</doc>
          <type name="LastChangeParser" c:type="GUPnPLastChangeParser*"/>
        </return-value>
      </constructor>
      <method name="parse_last_change"
              c:identifier="gupnp_last_change_parser_parse_last_change"
              introspectable="0">
        <doc xml:space="preserve">Parses the xml fragment from a LastChange event.</doc>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">TRUE on success.</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <instance-parameter name="parser" transfer-ownership="none">
            <doc xml:space="preserve">A #GUPnPLastChangeParser</doc>
            <type name="LastChangeParser" c:type="GUPnPLastChangeParser*"/>
          </instance-parameter>
          <parameter name="instance_id" transfer-ownership="none">
            <doc xml:space="preserve">The ID of the AV instance caller is interested in</doc>
            <type name="guint" c:type="guint"/>
          </parameter>
          <parameter name="last_change_xml" transfer-ownership="none">
            <doc xml:space="preserve">The xml from the "LastChange" event to parse</doc>
            <type name="utf8" c:type="const char*"/>
          </parameter>
          <parameter name="error" transfer-ownership="none">
            <doc xml:space="preserve">The location where to store any error, or NULL</doc>
            <type name="GLib.Error" c:type="GError**"/>
          </parameter>
          <parameter name="..." transfer-ownership="none">
            <doc xml:space="preserve">tuples of state variable name, state variable type, and state
variable value location, terminated with NULL. The state variable values
should be freed after use.</doc>
            <varargs/>
          </parameter>
        </parameters>
      </method>
      <method name="parse_last_change_valist"
              c:identifier="gupnp_last_change_parser_parse_last_change_valist"
              introspectable="0">
        <doc xml:space="preserve">See gupnp_last_change_parser_parse_last_change(); this version takes a
va_list for use by language bindings.</doc>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">TRUE on success.</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <instance-parameter name="parser" transfer-ownership="none">
            <doc xml:space="preserve">A #GUPnPLastChangeParser</doc>
            <type name="LastChangeParser" c:type="GUPnPLastChangeParser*"/>
          </instance-parameter>
          <parameter name="instance_id" transfer-ownership="none">
            <doc xml:space="preserve">The ID of the AV instance caller is interested in</doc>
            <type name="guint" c:type="guint"/>
          </parameter>
          <parameter name="last_change_xml" transfer-ownership="none">
            <doc xml:space="preserve">The xml from the "LastChange" event to parse</doc>
            <type name="utf8" c:type="const char*"/>
          </parameter>
          <parameter name="error" transfer-ownership="none">
            <doc xml:space="preserve">The location where to store any error, or NULL</doc>
            <type name="GLib.Error" c:type="GError**"/>
          </parameter>
          <parameter name="var_args" transfer-ownership="none">
            <doc xml:space="preserve">A va_list of tuples of state variable name, state variable type,
and state variable value location, terminated with NULL. The state variable
values should be freed after use</doc>
            <type name="va_list" c:type="va_list"/>
          </parameter>
        </parameters>
      </method>
      <field name="parent">
        <type name="GObject.Object" c:type="GObject"/>
      </field>
    </class>
    <record name="LastChangeParserClass"
            c:type="GUPnPLastChangeParserClass"
            glib:is-gtype-struct-for="LastChangeParser">
      <field name="parent_class">
        <type name="GObject.ObjectClass" c:type="GObjectClass"/>
      </field>
      <field name="_gupnp_reserved1" introspectable="0">
        <callback name="_gupnp_reserved1">
          <return-value transfer-ownership="none">
            <type name="none" c:type="void"/>
          </return-value>
        </callback>
      </field>
      <field name="_gupnp_reserved2" introspectable="0">
        <callback name="_gupnp_reserved2">
          <return-value transfer-ownership="none">
            <type name="none" c:type="void"/>
          </return-value>
        </callback>
      </field>
      <field name="_gupnp_reserved3" introspectable="0">
        <callback name="_gupnp_reserved3">
          <return-value transfer-ownership="none">
            <type name="none" c:type="void"/>
          </return-value>
        </callback>
      </field>
      <field name="_gupnp_reserved4" introspectable="0">
        <callback name="_gupnp_reserved4">
          <return-value transfer-ownership="none">
            <type name="none" c:type="void"/>
          </return-value>
        </callback>
      </field>
    </record>
    <class name="MediaCollection"
           c:symbol-prefix="media_collection"
           c:type="GUPnPMediaCollection"
           parent="GObject.Object"
           glib:type-name="GUPnPMediaCollection"
           glib:get-type="gupnp_media_collection_get_type"
           glib:type-struct="MediaCollectionClass">
      <constructor name="new" c:identifier="gupnp_media_collection_new">
        <doc xml:space="preserve">Create a new writable media collection.</doc>
        <return-value transfer-ownership="full">
          <doc xml:space="preserve">A new #GUPnPMediaCollection.</doc>
          <type name="MediaCollection" c:type="GUPnPMediaCollection*"/>
        </return-value>
      </constructor>
      <constructor name="new_from_string"
                   c:identifier="gupnp_media_collection_new_from_string">
        <doc xml:space="preserve">Parse a new #GUPnPMediaCollection from a block of XML data.</doc>
        <return-value transfer-ownership="full">
          <doc xml:space="preserve">A new #GUPnPMediaCollection.</doc>
          <type name="MediaCollection" c:type="GUPnPMediaCollection*"/>
        </return-value>
        <parameters>
          <parameter name="data" transfer-ownership="none">
            <doc xml:space="preserve">XML string.</doc>
            <type name="utf8" c:type="const char*"/>
          </parameter>
        </parameters>
      </constructor>
      <method name="add_item" c:identifier="gupnp_media_collection_add_item">
        <return-value transfer-ownership="full">
          <doc xml:space="preserve">A new #GUPnPDIDLLiteItem object. Unref after
use.</doc>
          <type name="DIDLLiteItem" c:type="GUPnPDIDLLiteItem*"/>
        </return-value>
        <parameters>
          <instance-parameter name="collection" transfer-ownership="none">
            <doc xml:space="preserve">#GUPnPMediaCollection</doc>
            <type name="MediaCollection" c:type="GUPnPMediaCollection*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_author"
              c:identifier="gupnp_media_collection_get_author">
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">The author of this media collection or %NULL if not set.</doc>
          <type name="utf8" c:type="const char*"/>
        </return-value>
        <parameters>
          <instance-parameter name="collection" transfer-ownership="none">
            <doc xml:space="preserve">#GUPnPMediaCollection</doc>
            <type name="MediaCollection" c:type="GUPnPMediaCollection*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_items" c:identifier="gupnp_media_collection_get_items">
        <return-value transfer-ownership="full">
          <doc xml:space="preserve">A #GList
containing the elemens of this collection, in proper order. Unref all items
and free the list after use.</doc>
          <type name="GLib.List" c:type="GList*">
            <type name="DIDLLiteItem"/>
          </type>
        </return-value>
        <parameters>
          <instance-parameter name="collection" transfer-ownership="none">
            <doc xml:space="preserve">#GUPnPMediaCollection</doc>
            <type name="MediaCollection" c:type="GUPnPMediaCollection*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_mutable"
              c:identifier="gupnp_media_collection_get_mutable">
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">#TRUE if the collections is modifiable, #FALSE otherwise.</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <instance-parameter name="collection" transfer-ownership="none">
            <doc xml:space="preserve">#GUPnPMediaCollection</doc>
            <type name="MediaCollection" c:type="GUPnPMediaCollection*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_string"
              c:identifier="gupnp_media_collection_get_string">
        <return-value transfer-ownership="full">
          <doc xml:space="preserve">XML string representing this media
collection. g_free() after use. If the colleciton is not mutable, returns a
copy of the original string.</doc>
          <type name="utf8" c:type="char*"/>
        </return-value>
        <parameters>
          <instance-parameter name="collection" transfer-ownership="none">
            <doc xml:space="preserve">#GUPnPMediaCollection</doc>
            <type name="MediaCollection" c:type="GUPnPMediaCollection*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_title" c:identifier="gupnp_media_collection_get_title">
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">The title of this media collection or %NULL if not set.</doc>
          <type name="utf8" c:type="const char*"/>
        </return-value>
        <parameters>
          <instance-parameter name="collection" transfer-ownership="none">
            <doc xml:space="preserve">#GUPnPMediaCollection</doc>
            <type name="MediaCollection" c:type="GUPnPMediaCollection*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="set_author"
              c:identifier="gupnp_media_collection_set_author">
        <doc xml:space="preserve">Set the author of the media collection</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="collection" transfer-ownership="none">
            <doc xml:space="preserve">#GUPnPMediaCollection</doc>
            <type name="MediaCollection" c:type="GUPnPMediaCollection*"/>
          </instance-parameter>
          <parameter name="author" transfer-ownership="none">
            <doc xml:space="preserve">New author of this media collection.</doc>
            <type name="utf8" c:type="const char*"/>
          </parameter>
        </parameters>
      </method>
      <method name="set_title" c:identifier="gupnp_media_collection_set_title">
        <doc xml:space="preserve">Set the title of a #GUPnPMediaCollection.</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="collection" transfer-ownership="none">
            <doc xml:space="preserve">#GUPnPMediaCollection</doc>
            <type name="MediaCollection" c:type="GUPnPMediaCollection*"/>
          </instance-parameter>
          <parameter name="title" transfer-ownership="none">
            <doc xml:space="preserve">New Title of this collection;</doc>
            <type name="utf8" c:type="const char*"/>
          </parameter>
        </parameters>
      </method>
      <property name="author"
                writable="1"
                construct="1"
                transfer-ownership="none">
        <doc xml:space="preserve">The author of this media collection.</doc>
        <type name="utf8" c:type="gchar*"/>
      </property>
      <property name="data"
                readable="0"
                writable="1"
                construct-only="1"
                transfer-ownership="none">
        <doc xml:space="preserve">Block of data to parse a collection from. If data is set upon
construction it will override the other properties and create a
unmutable collection parsed from data.</doc>
        <type name="utf8" c:type="gchar*"/>
      </property>
      <property name="mutable" transfer-ownership="none">
        <doc xml:space="preserve">Whether this media collation is modifyable or not.</doc>
        <type name="gboolean" c:type="gboolean"/>
      </property>
      <property name="title"
                writable="1"
                construct="1"
                transfer-ownership="none">
        <doc xml:space="preserve">The title of this media collection.</doc>
        <type name="utf8" c:type="gchar*"/>
      </property>
      <field name="parent">
        <type name="GObject.Object" c:type="GObject"/>
      </field>
      <field name="priv">
        <type name="MediaCollectionPrivate"
              c:type="GUPnPMediaCollectionPrivate*"/>
      </field>
    </class>
    <record name="MediaCollectionClass"
            c:type="GUPnPMediaCollectionClass"
            glib:is-gtype-struct-for="MediaCollection">
      <field name="parent_class">
        <type name="GObject.ObjectClass" c:type="GObjectClass"/>
      </field>
      <field name="_gupnp_reserved1" introspectable="0">
        <callback name="_gupnp_reserved1">
          <return-value transfer-ownership="none">
            <type name="none" c:type="void"/>
          </return-value>
        </callback>
      </field>
      <field name="_gupnp_reserved2" introspectable="0">
        <callback name="_gupnp_reserved2">
          <return-value transfer-ownership="none">
            <type name="none" c:type="void"/>
          </return-value>
        </callback>
      </field>
      <field name="_gupnp_reserved3" introspectable="0">
        <callback name="_gupnp_reserved3">
          <return-value transfer-ownership="none">
            <type name="none" c:type="void"/>
          </return-value>
        </callback>
      </field>
      <field name="_gupnp_reserved4" introspectable="0">
        <callback name="_gupnp_reserved4">
          <return-value transfer-ownership="none">
            <type name="none" c:type="void"/>
          </return-value>
        </callback>
      </field>
    </record>
    <record name="MediaCollectionPrivate"
            c:type="GUPnPMediaCollectionPrivate"
            disguised="1">
    </record>
    <bitfield name="OCMFlags"
              glib:type-name="GUPnPOCMFlags"
              glib:get-type="gupnp_ocm_flags_get_type"
              c:type="GUPnPOCMFlags">
      <doc xml:space="preserve">The DLNA OCM flags supported by a DIDL-Lite Object. For details on these
flags please refer to section 7.3.118.4 of DLNA Networked Device
Interoperability Guidelines Volume 1, October 2006.</doc>
      <member name="none"
              value="0"
              c:identifier="GUPNP_OCM_FLAGS_NONE"
              glib:nick="none">
        <doc xml:space="preserve">No flags</doc>
      </member>
      <member name="upload"
              value="1"
              c:identifier="GUPNP_OCM_FLAGS_UPLOAD"
              glib:nick="upload">
        <doc xml:space="preserve">Indicates support for content upload.</doc>
      </member>
      <member name="create_container"
              value="2"
              c:identifier="GUPNP_OCM_FLAGS_CREATE_CONTAINER"
              glib:nick="create-container">
        <doc xml:space="preserve">Indicates support for creation of child
                                   container.</doc>
      </member>
      <member name="destroyable"
              value="4"
              c:identifier="GUPNP_OCM_FLAGS_DESTROYABLE"
              glib:nick="destroyable">
        <doc xml:space="preserve">This object is destroyable.</doc>
      </member>
      <member name="upload_destroyable"
              value="8"
              c:identifier="GUPNP_OCM_FLAGS_UPLOAD_DESTROYABLE"
              glib:nick="upload-destroyable">
        <doc xml:space="preserve">Indicates support for upload of
                                     destroyable content.</doc>
      </member>
      <member name="change_metadata"
              value="16"
              c:identifier="GUPNP_OCM_FLAGS_CHANGE_METADATA"
              glib:nick="change-metadata">
        <doc xml:space="preserve">Indicates support for changing metadata.</doc>
      </member>
    </bitfield>
    <enumeration name="ProtocolError"
                 c:type="GUPnPProtocolError"
                 glib:error-domain="gupnp-protocol-error">
      <doc xml:space="preserve">#GError codes used for errors in the #GUPNP_PROTOCOL_ERROR domain, upon any
protocol related errors.</doc>
      <member name="invalid_syntax"
              value="0"
              c:identifier="GUPNP_PROTOCOL_ERROR_INVALID_SYNTAX">
        <doc xml:space="preserve">Invalid syntax.</doc>
      </member>
      <member name="other" value="1" c:identifier="GUPNP_PROTOCOL_ERROR_OTHER">
        <doc xml:space="preserve">Unknown/unhandled protocol related errors.</doc>
      </member>
    </enumeration>
    <class name="ProtocolInfo"
           c:symbol-prefix="protocol_info"
           c:type="GUPnPProtocolInfo"
           parent="GObject.Object"
           glib:type-name="GUPnPProtocolInfo"
           glib:get-type="gupnp_protocol_info_get_type"
           glib:type-struct="ProtocolInfoClass">
      <constructor name="new" c:identifier="gupnp_protocol_info_new">
        <return-value transfer-ownership="full">
          <doc xml:space="preserve">A new #GUPnPProtocolInfo object. Unref after usage.</doc>
          <type name="ProtocolInfo" c:type="GUPnPProtocolInfo*"/>
        </return-value>
      </constructor>
      <constructor name="new_from_string"
                   c:identifier="gupnp_protocol_info_new_from_string"
                   throws="1">
        <doc xml:space="preserve">Parses the @protocol_info string and creates a new #GUPnPProtocolInfo object
as a result.</doc>
        <return-value transfer-ownership="full">
          <doc xml:space="preserve">A new #GUPnPProtocolInfo object. Unref after usage.</doc>
          <type name="ProtocolInfo" c:type="GUPnPProtocolInfo*"/>
        </return-value>
        <parameters>
          <parameter name="protocol_info" transfer-ownership="none">
            <doc xml:space="preserve">The protocol info string</doc>
            <type name="utf8" c:type="const char*"/>
          </parameter>
        </parameters>
      </constructor>
      <method name="get_dlna_conversion"
              c:identifier="gupnp_protocol_info_get_dlna_conversion">
        <doc xml:space="preserve">Get the DLNA conversion flags.</doc>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">The DLNA conversion flags.</doc>
          <type name="DLNAConversion" c:type="GUPnPDLNAConversion"/>
        </return-value>
        <parameters>
          <instance-parameter name="info" transfer-ownership="none">
            <doc xml:space="preserve">A #GUPnPProtocolInfo</doc>
            <type name="ProtocolInfo" c:type="GUPnPProtocolInfo*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_dlna_flags"
              c:identifier="gupnp_protocol_info_get_dlna_flags">
        <doc xml:space="preserve">Get the gereric DLNA flags.</doc>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">The generic DLNA flags.</doc>
          <type name="DLNAFlags" c:type="GUPnPDLNAFlags"/>
        </return-value>
        <parameters>
          <instance-parameter name="info" transfer-ownership="none">
            <doc xml:space="preserve">A #GUPnPProtocolInfo</doc>
            <type name="ProtocolInfo" c:type="GUPnPProtocolInfo*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_dlna_operation"
              c:identifier="gupnp_protocol_info_get_dlna_operation">
        <doc xml:space="preserve">Get the DLNA operation flags.</doc>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">The DLNA operation flags.</doc>
          <type name="DLNAOperation" c:type="GUPnPDLNAOperation"/>
        </return-value>
        <parameters>
          <instance-parameter name="info" transfer-ownership="none">
            <doc xml:space="preserve">A #GUPnPProtocolInfo</doc>
            <type name="ProtocolInfo" c:type="GUPnPProtocolInfo*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_dlna_profile"
              c:identifier="gupnp_protocol_info_get_dlna_profile">
        <doc xml:space="preserve">Get the DLNA profile of this info.</doc>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">The DLNA profile of this info or %NULL. This string should
not be freed.</doc>
          <type name="utf8" c:type="const char*"/>
        </return-value>
        <parameters>
          <instance-parameter name="info" transfer-ownership="none">
            <doc xml:space="preserve">A #GUPnPProtocolInfo</doc>
            <type name="ProtocolInfo" c:type="GUPnPProtocolInfo*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_mime_type"
              c:identifier="gupnp_protocol_info_get_mime_type">
        <doc xml:space="preserve">Get the MIME-type of this info.</doc>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">The MIME-type of this info or %NULL. This string should not
be freed.</doc>
          <type name="utf8" c:type="const char*"/>
        </return-value>
        <parameters>
          <instance-parameter name="info" transfer-ownership="none">
            <doc xml:space="preserve">A #GUPnPProtocolInfo</doc>
            <type name="ProtocolInfo" c:type="GUPnPProtocolInfo*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_network"
              c:identifier="gupnp_protocol_info_get_network">
        <doc xml:space="preserve">Get the network this info is associated with.</doc>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">The network string or %NULL. This string should not be freed.</doc>
          <type name="utf8" c:type="const char*"/>
        </return-value>
        <parameters>
          <instance-parameter name="info" transfer-ownership="none">
            <doc xml:space="preserve">A #GUPnPProtocolInfo</doc>
            <type name="ProtocolInfo" c:type="GUPnPProtocolInfo*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_play_speeds"
              c:identifier="gupnp_protocol_info_get_play_speeds">
        <doc xml:space="preserve">Get the allowed play speeds on this info in the form of array of strings.</doc>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">The allowed play speeds as array of strings or %NULL. This
return array and it's content must not be modified or freed.</doc>
          <array c:type="const char**">
            <type name="utf8"/>
          </array>
        </return-value>
        <parameters>
          <instance-parameter name="info" transfer-ownership="none">
            <doc xml:space="preserve">A #GUPnPProtocolInfo</doc>
            <type name="ProtocolInfo" c:type="GUPnPProtocolInfo*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_protocol"
              c:identifier="gupnp_protocol_info_get_protocol">
        <doc xml:space="preserve">Get the protocol of this info.</doc>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">The protocol of this info or %NULL. This string should not
be freed.</doc>
          <type name="utf8" c:type="const char*"/>
        </return-value>
        <parameters>
          <instance-parameter name="info" transfer-ownership="none">
            <doc xml:space="preserve">A #GUPnPProtocolInfo</doc>
            <type name="ProtocolInfo" c:type="GUPnPProtocolInfo*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="is_compatible"
              c:identifier="gupnp_protocol_info_is_compatible">
        <doc xml:space="preserve">Checks if the given protocolInfo string is compatible with @info.</doc>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">#TRUE if @protocol_info is compatible with @info, otherwise
#FALSE.</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <instance-parameter name="info1" transfer-ownership="none">
            <doc xml:space="preserve">The first #GUPnPProtocolInfo</doc>
            <type name="ProtocolInfo" c:type="GUPnPProtocolInfo*"/>
          </instance-parameter>
          <parameter name="info2" transfer-ownership="none">
            <doc xml:space="preserve">The second #GUPnPProtocolInfo</doc>
            <type name="ProtocolInfo" c:type="GUPnPProtocolInfo*"/>
          </parameter>
        </parameters>
      </method>
      <method name="set_dlna_conversion"
              c:identifier="gupnp_protocol_info_set_dlna_conversion">
        <doc xml:space="preserve">Set the DLNA conversion flags.</doc>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">None.</doc>
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="info" transfer-ownership="none">
            <doc xml:space="preserve">A #GUPnPProtocolInfo</doc>
            <type name="ProtocolInfo" c:type="GUPnPProtocolInfo*"/>
          </instance-parameter>
          <parameter name="conversion" transfer-ownership="none">
            <doc xml:space="preserve">The bitwise OR of one or more DLNA conversion flags</doc>
            <type name="DLNAConversion" c:type="GUPnPDLNAConversion"/>
          </parameter>
        </parameters>
      </method>
      <method name="set_dlna_flags"
              c:identifier="gupnp_protocol_info_set_dlna_flags">
        <doc xml:space="preserve">Set the gereric DLNA flags.</doc>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">None.</doc>
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="info" transfer-ownership="none">
            <doc xml:space="preserve">A #GUPnPProtocolInfo</doc>
            <type name="ProtocolInfo" c:type="GUPnPProtocolInfo*"/>
          </instance-parameter>
          <parameter name="flags" transfer-ownership="none">
            <doc xml:space="preserve">The bitwise OR of one or more generic DLNA flags</doc>
            <type name="DLNAFlags" c:type="GUPnPDLNAFlags"/>
          </parameter>
        </parameters>
      </method>
      <method name="set_dlna_operation"
              c:identifier="gupnp_protocol_info_set_dlna_operation">
        <doc xml:space="preserve">Set the DLNA operation flags.</doc>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">None.</doc>
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="info" transfer-ownership="none">
            <doc xml:space="preserve">A #GUPnPProtocolInfo</doc>
            <type name="ProtocolInfo" c:type="GUPnPProtocolInfo*"/>
          </instance-parameter>
          <parameter name="operation" transfer-ownership="none">
            <doc xml:space="preserve">The bitwise OR of one or more DLNA operation flags</doc>
            <type name="DLNAOperation" c:type="GUPnPDLNAOperation"/>
          </parameter>
        </parameters>
      </method>
      <method name="set_dlna_profile"
              c:identifier="gupnp_protocol_info_set_dlna_profile">
        <doc xml:space="preserve">Set the DLNA profile of this info.</doc>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">None.</doc>
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="info" transfer-ownership="none">
            <doc xml:space="preserve">A #GUPnPProtocolInfo</doc>
            <type name="ProtocolInfo" c:type="GUPnPProtocolInfo*"/>
          </instance-parameter>
          <parameter name="profile" transfer-ownership="none">
            <doc xml:space="preserve">The DLNA profile string</doc>
            <type name="utf8" c:type="const char*"/>
          </parameter>
        </parameters>
      </method>
      <method name="set_mime_type"
              c:identifier="gupnp_protocol_info_set_mime_type">
        <doc xml:space="preserve">Set the MIME-type of this info.</doc>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">None.</doc>
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="info" transfer-ownership="none">
            <doc xml:space="preserve">A #GUPnPProtocolInfo</doc>
            <type name="ProtocolInfo" c:type="GUPnPProtocolInfo*"/>
          </instance-parameter>
          <parameter name="mime_type" transfer-ownership="none">
            <doc xml:space="preserve">The MIME-type string</doc>
            <type name="utf8" c:type="const char*"/>
          </parameter>
        </parameters>
      </method>
      <method name="set_network"
              c:identifier="gupnp_protocol_info_set_network">
        <doc xml:space="preserve">Set the network this info is associated with.</doc>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">None.</doc>
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="info" transfer-ownership="none">
            <doc xml:space="preserve">A #GUPnPProtocolInfo</doc>
            <type name="ProtocolInfo" c:type="GUPnPProtocolInfo*"/>
          </instance-parameter>
          <parameter name="network" transfer-ownership="none">
            <doc xml:space="preserve">The network string</doc>
            <type name="utf8" c:type="const char*"/>
          </parameter>
        </parameters>
      </method>
      <method name="set_play_speeds"
              c:identifier="gupnp_protocol_info_set_play_speeds">
        <doc xml:space="preserve">Set the allowed play speeds on this info in the form of array of strings.</doc>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">None.</doc>
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="info" transfer-ownership="none">
            <doc xml:space="preserve">A #GUPnPProtocolInfo</doc>
            <type name="ProtocolInfo" c:type="GUPnPProtocolInfo*"/>
          </instance-parameter>
          <parameter name="speeds" transfer-ownership="none">
            <doc xml:space="preserve">The allowed play speeds</doc>
            <type name="utf8" c:type="const char**"/>
          </parameter>
        </parameters>
      </method>
      <method name="set_protocol"
              c:identifier="gupnp_protocol_info_set_protocol">
        <doc xml:space="preserve">Set the protocol of this info.</doc>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">None.</doc>
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="info" transfer-ownership="none">
            <doc xml:space="preserve">A #GUPnPProtocolInfo</doc>
            <type name="ProtocolInfo" c:type="GUPnPProtocolInfo*"/>
          </instance-parameter>
          <parameter name="protocol" transfer-ownership="none">
            <doc xml:space="preserve">The protocol string</doc>
            <type name="utf8" c:type="const char*"/>
          </parameter>
        </parameters>
      </method>
      <method name="to_string" c:identifier="gupnp_protocol_info_to_string">
        <doc xml:space="preserve">Provides the string representation of @info.</doc>
        <return-value transfer-ownership="full">
          <doc xml:space="preserve">String representation of @info. #g_free after usage.</doc>
          <type name="utf8" c:type="char*"/>
        </return-value>
        <parameters>
          <instance-parameter name="info" transfer-ownership="none">
            <doc xml:space="preserve">The #GUPnPProtocolInfo</doc>
            <type name="ProtocolInfo" c:type="GUPnPProtocolInfo*"/>
          </instance-parameter>
        </parameters>
      </method>
      <property name="dlna-conversion" writable="1" transfer-ownership="none">
        <doc xml:space="preserve">The DLNA conversion flags.</doc>
        <type name="DLNAConversion"/>
      </property>
      <property name="dlna-flags" writable="1" transfer-ownership="none">
        <doc xml:space="preserve">Various generic DLNA flags.</doc>
        <type name="DLNAFlags"/>
      </property>
      <property name="dlna-operation" writable="1" transfer-ownership="none">
        <doc xml:space="preserve">The DLNA operation flags.</doc>
        <type name="DLNAOperation"/>
      </property>
      <property name="dlna-profile" writable="1" transfer-ownership="none">
        <doc xml:space="preserve">The DLNA profile of this info.</doc>
        <type name="utf8" c:type="gchar*"/>
      </property>
      <property name="mime-type" writable="1" transfer-ownership="none">
        <doc xml:space="preserve">The MIME-type of this info.</doc>
        <type name="utf8" c:type="gchar*"/>
      </property>
      <property name="network" writable="1" transfer-ownership="none">
        <doc xml:space="preserve">The network this info is associated with.</doc>
        <type name="utf8" c:type="gchar*"/>
      </property>
      <property name="play-speeds" writable="1" transfer-ownership="none">
        <doc xml:space="preserve">The allowed play speeds on this info in the form of array of
strings.</doc>
        <array>
          <type name="utf8"/>
        </array>
      </property>
      <property name="protocol" writable="1" transfer-ownership="none">
        <doc xml:space="preserve">The protocol of this info.</doc>
        <type name="utf8" c:type="gchar*"/>
      </property>
      <field name="parent">
        <type name="GObject.Object" c:type="GObject"/>
      </field>
      <field name="priv">
        <type name="ProtocolInfoPrivate" c:type="GUPnPProtocolInfoPrivate*"/>
      </field>
    </class>
    <record name="ProtocolInfoClass"
            c:type="GUPnPProtocolInfoClass"
            glib:is-gtype-struct-for="ProtocolInfo">
      <field name="parent_class">
        <type name="GObject.ObjectClass" c:type="GObjectClass"/>
      </field>
      <field name="_gupnp_reserved1" introspectable="0">
        <callback name="_gupnp_reserved1">
          <return-value transfer-ownership="none">
            <type name="none" c:type="void"/>
          </return-value>
        </callback>
      </field>
      <field name="_gupnp_reserved2" introspectable="0">
        <callback name="_gupnp_reserved2">
          <return-value transfer-ownership="none">
            <type name="none" c:type="void"/>
          </return-value>
        </callback>
      </field>
      <field name="_gupnp_reserved3" introspectable="0">
        <callback name="_gupnp_reserved3">
          <return-value transfer-ownership="none">
            <type name="none" c:type="void"/>
          </return-value>
        </callback>
      </field>
      <field name="_gupnp_reserved4" introspectable="0">
        <callback name="_gupnp_reserved4">
          <return-value transfer-ownership="none">
            <type name="none" c:type="void"/>
          </return-value>
        </callback>
      </field>
    </record>
    <record name="ProtocolInfoPrivate"
            c:type="GUPnPProtocolInfoPrivate"
            disguised="1">
    </record>
    <enumeration name="SearchCriteriaOp"
                 glib:type-name="GUPnPSearchCriteriaOp"
                 glib:get-type="gupnp_search_criteria_op_get_type"
                 c:type="GUPnPSearchCriteriaOp">
      <doc xml:space="preserve">The possible operators in SearchCriteria strings.</doc>
      <member name="EQ"
              value="271"
              c:identifier="GUPNP_SEARCH_CRITERIA_OP_EQ"
              glib:nick="EQ">
        <doc xml:space="preserve">'='</doc>
      </member>
      <member name="NEQ"
              value="272"
              c:identifier="GUPNP_SEARCH_CRITERIA_OP_NEQ"
              glib:nick="NEQ">
        <doc xml:space="preserve">'!='</doc>
      </member>
      <member name="LESS"
              value="273"
              c:identifier="GUPNP_SEARCH_CRITERIA_OP_LESS"
              glib:nick="LESS">
        <doc xml:space="preserve">'&lt;'</doc>
      </member>
      <member name="LEQ"
              value="274"
              c:identifier="GUPNP_SEARCH_CRITERIA_OP_LEQ"
              glib:nick="LEQ">
        <doc xml:space="preserve">'&lt;='</doc>
      </member>
      <member name="GREATER"
              value="275"
              c:identifier="GUPNP_SEARCH_CRITERIA_OP_GREATER"
              glib:nick="GREATER">
        <doc xml:space="preserve">'&gt;'</doc>
      </member>
      <member name="GEQ"
              value="276"
              c:identifier="GUPNP_SEARCH_CRITERIA_OP_GEQ"
              glib:nick="GEQ">
        <doc xml:space="preserve">'&gt;='</doc>
      </member>
      <member name="CONTAINS"
              value="277"
              c:identifier="GUPNP_SEARCH_CRITERIA_OP_CONTAINS"
              glib:nick="CONTAINS">
        <doc xml:space="preserve">'contains'</doc>
      </member>
      <member name="DOES_NOT_CONTAIN"
              value="278"
              c:identifier="GUPNP_SEARCH_CRITERIA_OP_DOES_NOT_CONTAIN"
              glib:nick="DOES_NOT_CONTAIN">
        <doc xml:space="preserve">'doesNotContain'</doc>
      </member>
      <member name="DERIVED_FROM"
              value="279"
              c:identifier="GUPNP_SEARCH_CRITERIA_OP_DERIVED_FROM"
              glib:nick="DERIVED_FROM">
        <doc xml:space="preserve">'derivedFrom'</doc>
      </member>
      <member name="EXISTS"
              value="280"
              c:identifier="GUPNP_SEARCH_CRITERIA_OP_EXISTS"
              glib:nick="EXISTS">
        <doc xml:space="preserve">'exists'</doc>
      </member>
    </enumeration>
    <class name="SearchCriteriaParser"
           c:symbol-prefix="search_criteria_parser"
           c:type="GUPnPSearchCriteriaParser"
           parent="GObject.Object"
           glib:type-name="GUPnPSearchCriteriaParser"
           glib:get-type="gupnp_search_criteria_parser_get_type"
           glib:type-struct="SearchCriteriaParserClass">
      <constructor name="new" c:identifier="gupnp_search_criteria_parser_new">
        <return-value transfer-ownership="full">
          <doc xml:space="preserve">A new #GUPnPSearchCriteriaParser object.</doc>
          <type name="SearchCriteriaParser"
                c:type="GUPnPSearchCriteriaParser*"/>
        </return-value>
      </constructor>
      <function name="error_quark"
                c:identifier="gupnp_search_criteria_parser_error_quark">
        <return-value transfer-ownership="none">
          <type name="GLib.Quark" c:type="GQuark"/>
        </return-value>
      </function>
      <virtual-method name="begin_parens">
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="parser" transfer-ownership="none">
            <type name="SearchCriteriaParser"
                  c:type="GUPnPSearchCriteriaParser*"/>
          </instance-parameter>
        </parameters>
      </virtual-method>
      <virtual-method name="conjunction">
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="parser" transfer-ownership="none">
            <type name="SearchCriteriaParser"
                  c:type="GUPnPSearchCriteriaParser*"/>
          </instance-parameter>
        </parameters>
      </virtual-method>
      <virtual-method name="disjunction">
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="parser" transfer-ownership="none">
            <type name="SearchCriteriaParser"
                  c:type="GUPnPSearchCriteriaParser*"/>
          </instance-parameter>
        </parameters>
      </virtual-method>
      <virtual-method name="end_parens">
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="parser" transfer-ownership="none">
            <type name="SearchCriteriaParser"
                  c:type="GUPnPSearchCriteriaParser*"/>
          </instance-parameter>
        </parameters>
      </virtual-method>
      <virtual-method name="expression" throws="1">
        <return-value transfer-ownership="none">
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <instance-parameter name="parser" transfer-ownership="none">
            <type name="SearchCriteriaParser"
                  c:type="GUPnPSearchCriteriaParser*"/>
          </instance-parameter>
          <parameter name="property" transfer-ownership="none">
            <type name="utf8" c:type="const char*"/>
          </parameter>
          <parameter name="op" transfer-ownership="none">
            <type name="SearchCriteriaOp" c:type="GUPnPSearchCriteriaOp"/>
          </parameter>
          <parameter name="value" transfer-ownership="none">
            <type name="utf8" c:type="const char*"/>
          </parameter>
        </parameters>
      </virtual-method>
      <method name="parse_text"
              c:identifier="gupnp_search_criteria_parser_parse_text"
              throws="1">
        <doc xml:space="preserve">Parses @text, emitting the various defined signals on the way. If an
error occured @error will be set.</doc>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">TRUE on success.</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <instance-parameter name="parser" transfer-ownership="none">
            <doc xml:space="preserve">A #GUPnPSearchCriteriaParser</doc>
            <type name="SearchCriteriaParser"
                  c:type="GUPnPSearchCriteriaParser*"/>
          </instance-parameter>
          <parameter name="text" transfer-ownership="none">
            <doc xml:space="preserve">The search criteria string to be parsed</doc>
            <type name="utf8" c:type="const char*"/>
          </parameter>
        </parameters>
      </method>
      <field name="parent">
        <type name="GObject.Object" c:type="GObject"/>
      </field>
      <field name="priv">
        <type name="SearchCriteriaParserPrivate"
              c:type="GUPnPSearchCriteriaParserPrivate*"/>
      </field>
      <glib:signal name="begin-parens" when="last">
        <doc xml:space="preserve">The ::begin_parens signal is emitted to mark the beginning of a
parenthetical expression.</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
      </glib:signal>
      <glib:signal name="conjunction" when="last">
        <doc xml:space="preserve">The ::conjuction signal is emitted whenever a conjuction marker
&amp;lpar;and&amp;rpar; is parsed.</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
      </glib:signal>
      <glib:signal name="disjunction" when="last">
        <doc xml:space="preserve">The ::disjuction signal is emitted whenever a disjuction marker
&amp;lpar;or&amp;rpar is parsed.</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
      </glib:signal>
      <glib:signal name="end-parens" when="last">
        <doc xml:space="preserve">The ::end_parens signal is emitted to mark the end of a parenthetical
expression.</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
      </glib:signal>
      <glib:signal name="expression" when="last">
        <doc xml:space="preserve">The ::expression signal is emitted whenever an expression is parsed.
Set @error and return %FALSE if an error occurred.</doc>
        <return-value transfer-ownership="none">
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <parameter name="property" transfer-ownership="none">
            <doc xml:space="preserve">The property</doc>
            <type name="utf8" c:type="gchar*"/>
          </parameter>
          <parameter name="op" transfer-ownership="none">
            <doc xml:space="preserve">The operator as #GUPnPSearchCriteriaOp</doc>
            <type name="SearchCriteriaOp"/>
          </parameter>
          <parameter name="value" transfer-ownership="none">
            <doc xml:space="preserve">The value as string</doc>
            <type name="utf8" c:type="gchar*"/>
          </parameter>
          <parameter name="error" transfer-ownership="none">
            <doc xml:space="preserve">Place-holder for any possible errors from handler</doc>
            <type name="gpointer" c:type="gpointer"/>
          </parameter>
        </parameters>
      </glib:signal>
    </class>
    <record name="SearchCriteriaParserClass"
            c:type="GUPnPSearchCriteriaParserClass"
            glib:is-gtype-struct-for="SearchCriteriaParser">
      <field name="parent_class">
        <type name="GObject.ObjectClass" c:type="GObjectClass"/>
      </field>
      <field name="begin_parens">
        <callback name="begin_parens">
          <return-value transfer-ownership="none">
            <type name="none" c:type="void"/>
          </return-value>
          <parameters>
            <parameter name="parser" transfer-ownership="none">
              <type name="SearchCriteriaParser"
                    c:type="GUPnPSearchCriteriaParser*"/>
            </parameter>
          </parameters>
        </callback>
      </field>
      <field name="end_parens">
        <callback name="end_parens">
          <return-value transfer-ownership="none">
            <type name="none" c:type="void"/>
          </return-value>
          <parameters>
            <parameter name="parser" transfer-ownership="none">
              <type name="SearchCriteriaParser"
                    c:type="GUPnPSearchCriteriaParser*"/>
            </parameter>
          </parameters>
        </callback>
      </field>
      <field name="conjunction">
        <callback name="conjunction">
          <return-value transfer-ownership="none">
            <type name="none" c:type="void"/>
          </return-value>
          <parameters>
            <parameter name="parser" transfer-ownership="none">
              <type name="SearchCriteriaParser"
                    c:type="GUPnPSearchCriteriaParser*"/>
            </parameter>
          </parameters>
        </callback>
      </field>
      <field name="disjunction">
        <callback name="disjunction">
          <return-value transfer-ownership="none">
            <type name="none" c:type="void"/>
          </return-value>
          <parameters>
            <parameter name="parser" transfer-ownership="none">
              <type name="SearchCriteriaParser"
                    c:type="GUPnPSearchCriteriaParser*"/>
            </parameter>
          </parameters>
        </callback>
      </field>
      <field name="expression">
        <callback name="expression" throws="1">
          <return-value transfer-ownership="none">
            <type name="gboolean" c:type="gboolean"/>
          </return-value>
          <parameters>
            <parameter name="parser" transfer-ownership="none">
              <type name="SearchCriteriaParser"
                    c:type="GUPnPSearchCriteriaParser*"/>
            </parameter>
            <parameter name="property" transfer-ownership="none">
              <type name="utf8" c:type="const char*"/>
            </parameter>
            <parameter name="op" transfer-ownership="none">
              <type name="SearchCriteriaOp" c:type="GUPnPSearchCriteriaOp"/>
            </parameter>
            <parameter name="value" transfer-ownership="none">
              <type name="utf8" c:type="const char*"/>
            </parameter>
          </parameters>
        </callback>
      </field>
      <field name="_gupnp_reserved1" introspectable="0">
        <callback name="_gupnp_reserved1">
          <return-value transfer-ownership="none">
            <type name="none" c:type="void"/>
          </return-value>
        </callback>
      </field>
      <field name="_gupnp_reserved2" introspectable="0">
        <callback name="_gupnp_reserved2">
          <return-value transfer-ownership="none">
            <type name="none" c:type="void"/>
          </return-value>
        </callback>
      </field>
      <field name="_gupnp_reserved3" introspectable="0">
        <callback name="_gupnp_reserved3">
          <return-value transfer-ownership="none">
            <type name="none" c:type="void"/>
          </return-value>
        </callback>
      </field>
      <field name="_gupnp_reserved4" introspectable="0">
        <callback name="_gupnp_reserved4">
          <return-value transfer-ownership="none">
            <type name="none" c:type="void"/>
          </return-value>
        </callback>
      </field>
    </record>
    <enumeration name="SearchCriteriaParserError"
                 c:type="GUPnPSearchCriteriaParserError">
      <member name="search_criteria_parser_error_failed"
              value="0"
              c:identifier="GUPNP_SEARCH_CRITERIA_PARSER_ERROR_FAILED">
        <doc xml:space="preserve">Parsing the search criteria
failed.</doc>
      </member>
    </enumeration>
    <record name="SearchCriteriaParserPrivate"
            c:type="GUPnPSearchCriteriaParserPrivate"
            disguised="1">
    </record>
    <function name="protocol_error_quark"
              c:identifier="gupnp_protocol_error_quark">
      <return-value transfer-ownership="none">
        <type name="GLib.Quark" c:type="GQuark"/>
      </return-value>
    </function>
  </namespace>
</repository>
