<?xml version="1.0"?>
<!-- This file was automatically generated from C sources - DO NOT EDIT!
To affect the contents of this file, edit the original C definitions,
and/or use gtk-doc annotations.  -->
<repository version="1.2"
            xmlns="http://www.gtk.org/introspection/core/1.0"
            xmlns:c="http://www.gtk.org/introspection/c/1.0"
            xmlns:glib="http://www.gtk.org/introspection/glib/1.0">
  <include name="GLib" version="2.0"/>
  <include name="GObject" version="2.0"/>
  <include name="GSSDP" version="1.0"/>
  <include name="GUPnP" version="1.0"/>
  <include name="Gio" version="2.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.0.1"
             c:identifier-prefixes="GUPnP"
             c:symbol-prefixes="gupnp">
    <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:whitespace="preserve">Add a new create class to the @object. includeDerived defaults to "0".</doc>
        <return-value transfer-ownership="none">
          <doc xml:whitespace="preserve">None.</doc>
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <parameter name="create_class" transfer-ownership="none">
            <doc xml:whitespace="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:whitespace="preserve">Add a new create class to the @object.</doc>
        <return-value transfer-ownership="none">
          <doc xml:whitespace="preserve">None.</doc>
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <parameter name="create_class" transfer-ownership="none">
            <doc xml:whitespace="preserve">The createClass to add.</doc>
            <type name="utf8" c:type="const char*"/>
          </parameter>
          <parameter name="include_derived" transfer-ownership="none">
            <doc xml:whitespace="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:whitespace="preserve">Add a new search class to the @object.</doc>
        <return-value transfer-ownership="none">
          <doc xml:whitespace="preserve">None.</doc>
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <parameter name="search_class" transfer-ownership="none">
            <doc xml:whitespace="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:whitespace="preserve">Add a new search class to the @object.</doc>
        <return-value transfer-ownership="none">
          <doc xml:whitespace="preserve">None.</doc>
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <parameter name="search_class" transfer-ownership="none">
            <doc xml:whitespace="preserve">The searchClass to add.</doc>
            <type name="utf8" c:type="const char*"/>
          </parameter>
          <parameter name="include_derived" transfer-ownership="none">
            <doc xml:whitespace="preserve">includeDerived attribute of the DIDL</doc>
            <type name="gboolean" c:type="gboolean"/>
          </parameter>
        </parameters>
      </method>
      <method name="get_child_count"
              c:identifier="gupnp_didl_lite_container_get_child_count">
        <doc xml:whitespace="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:whitespace="preserve">The child count of the @container, or -1 if it is unknown.</doc>
          <type name="gint" c:type="gint"/>
        </return-value>
      </method>
      <method name="get_create_classes"
              c:identifier="gupnp_didl_lite_container_get_create_classes">
        <doc xml:whitespace="preserve">Gets the list of create classes of the @object.</doc>
        <return-value transfer-ownership="full">
          <doc xml:whitespace="preserve">The list of create classes belonging to @object, 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>
      </method>
      <method name="get_search_classes"
              c:identifier="gupnp_didl_lite_container_get_search_classes">
        <doc xml:whitespace="preserve">Gets the list of search classes of the @object.</doc>
        <return-value transfer-ownership="full">
          <doc xml:whitespace="preserve">The list of search classes belonging to @object, 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>
      </method>
      <method name="get_searchable"
              c:identifier="gupnp_didl_lite_container_get_searchable">
        <doc xml:whitespace="preserve">Checks whether @container is searchable.</doc>
        <return-value transfer-ownership="none">
          <doc xml:whitespace="preserve">#TRUE if @container is searchable.</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
      </method>
      <method name="get_storage_used"
              c:identifier="gupnp_didl_lite_container_get_storage_used">
        <doc xml:whitespace="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:whitespace="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>
      </method>
      <method name="set_child_count"
              c:identifier="gupnp_didl_lite_container_set_child_count">
        <doc xml:whitespace="preserve">Set the child count of the @container.</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <parameter name="child_count" transfer-ownership="none">
            <doc xml:whitespace="preserve">The child count</doc>
            <type name="gint" c:type="gint"/>
          </parameter>
        </parameters>
      </method>
      <method name="set_searchable"
              c:identifier="gupnp_didl_lite_container_set_searchable">
        <doc xml:whitespace="preserve">(Un)set the searchibility of @container.</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <parameter name="searchable" transfer-ownership="none">
            <doc xml:whitespace="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:whitespace="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>
          <parameter name="storage_used" transfer-ownership="none">
            <doc xml:whitespace="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>
      <property name="child-count" writable="1" transfer-ownership="none">
        <doc xml:whitespace="preserve">The child count of this container.</doc>
        <type name="gint"/>
      </property>
      <property name="searchable" writable="1" transfer-ownership="none">
        <doc xml:whitespace="preserve">Whether this container is searchable.</doc>
        <type name="gboolean"/>
      </property>
      <property name="storage-used" writable="1" transfer-ownership="none">
        <doc xml:whitespace="preserve">The number of bytes used by all child items of this container.</doc>
        <type name="gint64"/>
      </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:whitespace="preserve">Get the name of the @contributor.</doc>
        <return-value transfer-ownership="none">
          <doc xml:whitespace="preserve">The name of the @contributor or %NULL.</doc>
          <type name="utf8" c:type="const char*"/>
        </return-value>
      </method>
      <method name="get_role"
              c:identifier="gupnp_didl_lite_contributor_get_role">
        <doc xml:whitespace="preserve">Get the role of the @contributor.</doc>
        <return-value transfer-ownership="none">
          <doc xml:whitespace="preserve">The role of the @contributor, or %NULL.</doc>
          <type name="utf8" c:type="const char*"/>
        </return-value>
      </method>
      <method name="get_xml_node"
              c:identifier="gupnp_didl_lite_contributor_get_xml_node">
        <doc xml:whitespace="preserve">Get the pointer to relevant node in XML document.</doc>
        <return-value transfer-ownership="none">
          <doc xml:whitespace="preserve">The pointer to relevant node in XML document.</doc>
          <type name="libxml2.Node" c:type="xmlNode*"/>
        </return-value>
      </method>
      <method name="set_name"
              c:identifier="gupnp_didl_lite_contributor_set_name">
        <doc xml:whitespace="preserve">Set the name of the @contributor to @name.</doc>
        <return-value transfer-ownership="none">
          <doc xml:whitespace="preserve">None.</doc>
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <parameter name="name" transfer-ownership="none">
            <doc xml:whitespace="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:whitespace="preserve">Set the role of the @contributor to @role.</doc>
        <return-value transfer-ownership="none">
          <doc xml:whitespace="preserve">None.</doc>
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <parameter name="role" transfer-ownership="none">
            <doc xml:whitespace="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:whitespace="preserve">The name of this contributor.</doc>
        <type name="utf8"/>
      </property>
      <property name="role" writable="1" transfer-ownership="none">
        <doc xml:whitespace="preserve">The role of this contributor.</doc>
        <type name="utf8"/>
      </property>
      <property name="xml-doc"
                stability="Private"
                readable="0"
                writable="1"
                construct-only="1"
                transfer-ownership="none">
        <doc xml:whitespace="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:whitespace="preserve">The pointer to object node in XML document.</doc>
        <type name="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="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:whitespace="preserve">Get the content of the @descriptor.</doc>
        <return-value transfer-ownership="none">
          <doc xml:whitespace="preserve">The content of the @descriptor or %NULL.</doc>
          <type name="utf8" c:type="const char*"/>
        </return-value>
      </method>
      <method name="get_id" c:identifier="gupnp_didl_lite_descriptor_get_id">
        <doc xml:whitespace="preserve">Get the ID of the @descriptor.</doc>
        <return-value transfer-ownership="none">
          <doc xml:whitespace="preserve">The ID string or %NULL.</doc>
          <type name="utf8" c:type="const char*"/>
        </return-value>
      </method>
      <method name="get_metadata_type"
              c:identifier="gupnp_didl_lite_descriptor_get_metadata_type">
        <doc xml:whitespace="preserve">Get the metadata type of the @descriptor.</doc>
        <return-value transfer-ownership="none">
          <doc xml:whitespace="preserve">The type as string or %NULL.</doc>
          <type name="utf8" c:type="const char*"/>
        </return-value>
      </method>
      <method name="get_name_space"
              c:identifier="gupnp_didl_lite_descriptor_get_name_space">
        <doc xml:whitespace="preserve">Get the name space associated with the @descriptor.</doc>
        <return-value transfer-ownership="none">
          <doc xml:whitespace="preserve">The name space or %NULL.</doc>
          <type name="utf8" c:type="const char*"/>
        </return-value>
      </method>
      <method name="get_xml_node"
              c:identifier="gupnp_didl_lite_descriptor_get_xml_node">
        <doc xml:whitespace="preserve">Get the pointer to desc node in XML document.</doc>
        <return-value transfer-ownership="none">
          <doc xml:whitespace="preserve">The pointer to desc node in XML document.</doc>
          <type name="libxml2.Node" c:type="xmlNode*"/>
        </return-value>
      </method>
      <method name="set_content"
              c:identifier="gupnp_didl_lite_descriptor_set_content">
        <doc xml:whitespace="preserve">Set the content of the @descriptor.</doc>
        <return-value transfer-ownership="none">
          <doc xml:whitespace="preserve">None.</doc>
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <parameter name="content" transfer-ownership="none">
            <doc xml:whitespace="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:whitespace="preserve">Set the ID of the @descriptor.</doc>
        <return-value transfer-ownership="none">
          <doc xml:whitespace="preserve">None.</doc>
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <parameter name="id" transfer-ownership="none">
            <doc xml:whitespace="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:whitespace="preserve">Set the metadata type of the @descriptor.</doc>
        <return-value transfer-ownership="none">
          <doc xml:whitespace="preserve">None.</doc>
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <parameter name="type" transfer-ownership="none">
            <doc xml:whitespace="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:whitespace="preserve">Set the name space associated with the @descriptor.</doc>
        <return-value transfer-ownership="none">
          <doc xml:whitespace="preserve">None.</doc>
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <parameter name="name_space" transfer-ownership="none">
            <doc xml:whitespace="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:whitespace="preserve">The content of this descriptor.</doc>
        <type name="utf8"/>
      </property>
      <property name="id" writable="1" transfer-ownership="none">
        <doc xml:whitespace="preserve">The ID of this descriptor.</doc>
        <type name="utf8"/>
      </property>
      <property name="metadata-type" writable="1" transfer-ownership="none">
        <doc xml:whitespace="preserve">The type of this descriptor.</doc>
        <type name="utf8"/>
      </property>
      <property name="name-space" writable="1" transfer-ownership="none">
        <doc xml:whitespace="preserve">The name space associated with this descriptor.</doc>
        <type name="utf8"/>
      </property>
      <property name="xml-doc"
                stability="Private"
                readable="0"
                writable="1"
                construct-only="1"
                transfer-ownership="none">
        <doc xml:whitespace="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:whitespace="preserve">The pointer to desc node in XML document.</doc>
        <type name="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>
    <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_ref_id" c:identifier="gupnp_didl_lite_item_get_ref_id">
        <doc xml:whitespace="preserve">Get the ref ID of the @item.</doc>
        <return-value transfer-ownership="none">
          <doc xml:whitespace="preserve">The ref ID of the @item, or %NULL.</doc>
          <type name="utf8" c:type="const char*"/>
        </return-value>
      </method>
      <method name="set_ref_id" c:identifier="gupnp_didl_lite_item_set_ref_id">
        <doc xml:whitespace="preserve">Set the ref ID of the @item.</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <parameter name="ref_id" transfer-ownership="none">
            <doc xml:whitespace="preserve">The ref ID</doc>
            <type name="utf8" c:type="const char*"/>
          </parameter>
        </parameters>
      </method>
      <property name="ref-id" writable="1" transfer-ownership="none">
        <doc xml:whitespace="preserve">The ref ID of this item.</doc>
        <type name="utf8"/>
      </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:whitespace="preserve">Add a new Artist node to the @object and return the associated
#GUPnPDIDLLiteContributor object.</doc>
        <return-value transfer-ownership="full">
          <doc xml:whitespace="preserve">A new #GUPnPDIDLLiteContributor object. Unref after usage.</doc>
          <type name="DIDLLiteContributor" c:type="GUPnPDIDLLiteContributor*"/>
        </return-value>
      </method>
      <method name="add_author"
              c:identifier="gupnp_didl_lite_object_add_author">
        <doc xml:whitespace="preserve">Add a new author node to the @object and return the associated
#GUPnPDIDLLiteContributor object.</doc>
        <return-value transfer-ownership="full">
          <doc xml:whitespace="preserve">A new #GUPnPDIDLLiteContributor object. Unref after usage.</doc>
          <type name="DIDLLiteContributor" c:type="GUPnPDIDLLiteContributor*"/>
        </return-value>
      </method>
      <method name="add_creator"
              c:identifier="gupnp_didl_lite_object_add_creator">
        <doc xml:whitespace="preserve">Add a new creator node to the @object and return the associated
#GUPnPDIDLLiteContributor object.</doc>
        <return-value transfer-ownership="full">
          <doc xml:whitespace="preserve">A new #GUPnPDIDLLiteContributor object. Unref after usage.</doc>
          <type name="DIDLLiteContributor" c:type="GUPnPDIDLLiteContributor*"/>
        </return-value>
      </method>
      <method name="add_descriptor"
              c:identifier="gupnp_didl_lite_object_add_descriptor">
        <doc xml:whitespace="preserve">Creates a new descriptor, attaches it to @object and returns it.</doc>
        <return-value transfer-ownership="full">
          <doc xml:whitespace="preserve">A new #GUPnPDIDLLiteDescriptor object. Unref after usage.</doc>
          <type name="DIDLLiteDescriptor" c:type="GUPnPDIDLLiteDescriptor*"/>
        </return-value>
      </method>
      <method name="add_resource"
              c:identifier="gupnp_didl_lite_object_add_resource">
        <doc xml:whitespace="preserve">Creates a new resource, attaches it to @object and returns it.</doc>
        <return-value transfer-ownership="full">
          <doc xml:whitespace="preserve">A new #GUPnPDIDLLiteResource object. Unref after usage.</doc>
          <type name="DIDLLiteResource" c:type="GUPnPDIDLLiteResource*"/>
        </return-value>
      </method>
      <method name="get_album" c:identifier="gupnp_didl_lite_object_get_album">
        <doc xml:whitespace="preserve">Get the album of the @object.</doc>
        <return-value transfer-ownership="none">
          <doc xml:whitespace="preserve">The album of the @object, or %NULL.</doc>
          <type name="utf8" c:type="const char*"/>
        </return-value>
      </method>
      <method name="get_album_art"
              c:identifier="gupnp_didl_lite_object_get_album_art">
        <doc xml:whitespace="preserve">Get the URI to album art of the @object.</doc>
        <return-value transfer-ownership="none">
          <doc xml:whitespace="preserve">The URI to album art of the @object, or %NULL.</doc>
          <type name="utf8" c:type="const char*"/>
        </return-value>
      </method>
      <method name="get_artist"
              c:identifier="gupnp_didl_lite_object_get_artist"
              deprecated="Use #gupnp_didl_lite_object_get_artists instead."
              deprecated-version="0.5.3">
        <doc xml:whitespace="preserve">Get the artist of the @object. If role is not %NULL, it is set to the role
of the artist if available.</doc>
        <return-value transfer-ownership="none">
          <doc xml:whitespace="preserve">The artist of the @object, or %NULL.</doc>
          <type name="utf8" c:type="const char*"/>
        </return-value>
      </method>
      <method name="get_artists"
              c:identifier="gupnp_didl_lite_object_get_artists">
        <doc xml:whitespace="preserve">Get the artists of the @object.</doc>
        <return-value transfer-ownership="full">
          <doc xml:whitespace="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>
      </method>
      <method name="get_author"
              c:identifier="gupnp_didl_lite_object_get_author"
              deprecated="Use #gupnp_didl_lite_object_get_authors instead."
              deprecated-version="0.5.3">
        <doc xml:whitespace="preserve">Get the author of the @object.</doc>
        <return-value transfer-ownership="none">
          <doc xml:whitespace="preserve">The author of the @object, or %NULL.</doc>
          <type name="utf8" c:type="const char*"/>
        </return-value>
      </method>
      <method name="get_authors"
              c:identifier="gupnp_didl_lite_object_get_authors">
        <doc xml:whitespace="preserve">Get the authors of the @object.</doc>
        <return-value transfer-ownership="full">
          <doc xml:whitespace="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>
      </method>
      <method name="get_compat_resource"
              c:identifier="gupnp_didl_lite_object_get_compat_resource">
        <doc xml:whitespace="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:whitespace="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>
          <parameter name="sink_protocol_info" transfer-ownership="none">
            <doc xml:whitespace="preserve">The SinkProtocolInfo string from MediaRenderer</doc>
            <type name="utf8" c:type="const char*"/>
          </parameter>
          <parameter name="lenient" transfer-ownership="none">
            <doc xml:whitespace="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"
              deprecated="Use #gupnp_didl_lite_object_get_creators instead."
              deprecated-version="0.5.3">
        <doc xml:whitespace="preserve">Get the creator of the @object.</doc>
        <return-value transfer-ownership="none">
          <doc xml:whitespace="preserve">The creator of the @object, or %NULL.</doc>
          <type name="utf8" c:type="const char*"/>
        </return-value>
      </method>
      <method name="get_creators"
              c:identifier="gupnp_didl_lite_object_get_creators">
        <doc xml:whitespace="preserve">Get the creators of the @object.</doc>
        <return-value transfer-ownership="full">
          <doc xml:whitespace="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>
      </method>
      <method name="get_date" c:identifier="gupnp_didl_lite_object_get_date">
        <doc xml:whitespace="preserve">Get the date of the @object.</doc>
        <return-value transfer-ownership="none">
          <doc xml:whitespace="preserve">The date of the @object, or %NULL.</doc>
          <type name="utf8" c:type="const char*"/>
        </return-value>
      </method>
      <method name="get_dc_namespace"
              c:identifier="gupnp_didl_lite_object_get_dc_namespace">
        <doc xml:whitespace="preserve">Get the pointer to the DublinCore namespace registered with the XML document
containing this object.</doc>
        <return-value transfer-ownership="none">
          <doc xml:whitespace="preserve">The pointer to DublinCore namespace in XML document.</doc>
          <type name="libxml2.NsPtr" c:type="xmlNsPtr"/>
        </return-value>
      </method>
      <method name="get_description"
              c:identifier="gupnp_didl_lite_object_get_description">
        <doc xml:whitespace="preserve">Get the description of the @object.</doc>
        <return-value transfer-ownership="none">
          <doc xml:whitespace="preserve">The description of the @object, or %NULL.</doc>
          <type name="utf8" c:type="const char*"/>
        </return-value>
      </method>
      <method name="get_descriptors"
              c:identifier="gupnp_didl_lite_object_get_descriptors">
        <doc xml:whitespace="preserve">Get the descriptors of the @object.</doc>
        <return-value transfer-ownership="full">
          <doc xml:whitespace="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>
      </method>
      <method name="get_dlna_managed"
              c:identifier="gupnp_didl_lite_object_get_dlna_managed">
        <doc xml:whitespace="preserve">Get the 'dlna:dlnaManaged' attribute of the @object.</doc>
        <return-value transfer-ownership="none">
          <doc xml:whitespace="preserve">The 'dlna:dlnaManaged' attribute of the @object.</doc>
          <type name="OCMFlags" c:type="GUPnPOCMFlags"/>
        </return-value>
      </method>
      <method name="get_dlna_namespace"
              c:identifier="gupnp_didl_lite_object_get_dlna_namespace">
        <doc xml:whitespace="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:whitespace="preserve">The pointer to DLNA namespace in XML document.</doc>
          <type name="libxml2.NsPtr" c:type="xmlNsPtr"/>
        </return-value>
      </method>
      <method name="get_genre" c:identifier="gupnp_didl_lite_object_get_genre">
        <doc xml:whitespace="preserve">Get the genre of the @object.</doc>
        <return-value transfer-ownership="none">
          <doc xml:whitespace="preserve">The genre of the @object, or %NULL.</doc>
          <type name="utf8" c:type="const char*"/>
        </return-value>
      </method>
      <method name="get_id" c:identifier="gupnp_didl_lite_object_get_id">
        <doc xml:whitespace="preserve">Get the ID of the @object.</doc>
        <return-value transfer-ownership="none">
          <doc xml:whitespace="preserve">The ID of the @object, or %NULL.</doc>
          <type name="utf8" c:type="const char*"/>
        </return-value>
      </method>
      <method name="get_parent_id"
              c:identifier="gupnp_didl_lite_object_get_parent_id">
        <doc xml:whitespace="preserve">Get the ID of the parent of the @object.</doc>
        <return-value transfer-ownership="none">
          <doc xml:whitespace="preserve">The ID of parent of the @object, or %NULL.</doc>
          <type name="utf8" c:type="const char*"/>
        </return-value>
      </method>
      <method name="get_properties"
              c:identifier="gupnp_didl_lite_object_get_properties">
        <doc xml:whitespace="preserve">Use this function to retreive property nodes by name.</doc>
        <return-value transfer-ownership="container">
          <doc xml:whitespace="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>
          <parameter name="name" transfer-ownership="none">
            <doc xml:whitespace="preserve">name of the properties</doc>
            <type name="utf8" c:type="const char*"/>
          </parameter>
        </parameters>
      </method>
      <method name="get_resources"
              c:identifier="gupnp_didl_lite_object_get_resources">
        <doc xml:whitespace="preserve">Use this function to retreive resources from the @object.</doc>
        <return-value transfer-ownership="full">
          <doc xml:whitespace="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>
      </method>
      <method name="get_restricted"
              c:identifier="gupnp_didl_lite_object_get_restricted">
        <doc xml:whitespace="preserve">Whether the @object is restricted or not.</doc>
        <return-value transfer-ownership="none">
          <doc xml:whitespace="preserve">#TRUE if @object is restricted.</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
      </method>
      <method name="get_title" c:identifier="gupnp_didl_lite_object_get_title">
        <doc xml:whitespace="preserve">Get the title of the @object.</doc>
        <return-value transfer-ownership="none">
          <doc xml:whitespace="preserve">The title of the @object, or %NULL.</doc>
          <type name="utf8" c:type="const char*"/>
        </return-value>
      </method>
      <method name="get_track_number"
              c:identifier="gupnp_didl_lite_object_get_track_number">
        <doc xml:whitespace="preserve">Get the original track number of the @object.</doc>
        <return-value transfer-ownership="none">
          <doc xml:whitespace="preserve">The original track number of the @object, or -1.</doc>
          <type name="gint" c:type="int"/>
        </return-value>
      </method>
      <method name="get_upnp_class"
              c:identifier="gupnp_didl_lite_object_get_upnp_class">
        <doc xml:whitespace="preserve">Get the UPnP class of the @object.</doc>
        <return-value transfer-ownership="none">
          <doc xml:whitespace="preserve">The class of @object, or %NULL.</doc>
          <type name="utf8" c:type="const char*"/>
        </return-value>
      </method>
      <method name="get_upnp_namespace"
              c:identifier="gupnp_didl_lite_object_get_upnp_namespace">
        <doc xml:whitespace="preserve">Get the pointer to the UPnP namespace registered with the XML document.</doc>
        <return-value transfer-ownership="none">
          <doc xml:whitespace="preserve">The pointer to UPnP namespace in XML document.</doc>
          <type name="libxml2.NsPtr" c:type="xmlNsPtr"/>
        </return-value>
      </method>
      <method name="get_write_status"
              c:identifier="gupnp_didl_lite_object_get_write_status">
        <doc xml:whitespace="preserve">Get the write status of the @object.</doc>
        <return-value transfer-ownership="none">
          <doc xml:whitespace="preserve">The write status of the @object, or %NULL.</doc>
          <type name="utf8" c:type="const char*"/>
        </return-value>
      </method>
      <method name="get_xml_node"
              c:identifier="gupnp_didl_lite_object_get_xml_node">
        <doc xml:whitespace="preserve">Get the pointer to object node in XML document.</doc>
        <return-value transfer-ownership="none">
          <doc xml:whitespace="preserve">The pointer to object node in XML document.</doc>
          <type name="libxml2.Node" c:type="xmlNode*"/>
        </return-value>
      </method>
      <method name="set_album" c:identifier="gupnp_didl_lite_object_set_album">
        <doc xml:whitespace="preserve">Set the album of the @object to @album.</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <parameter name="album" transfer-ownership="none">
            <doc xml:whitespace="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:whitespace="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>
          <parameter name="album_art" transfer-ownership="none">
            <doc xml:whitespace="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="Use #gupnp_didl_lite_object_add_artist instead."
              deprecated-version="0.5.3">
        <doc xml:whitespace="preserve">Set the Artist of the @object to @artist.</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <parameter name="artist" transfer-ownership="none">
            <doc xml:whitespace="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="Use #gupnp_didl_lite_object_add_author instead."
              deprecated-version="0.5.3">
        <doc xml:whitespace="preserve">Set the Author of the @object to @author.</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <parameter name="author" transfer-ownership="none">
            <doc xml:whitespace="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"
              deprecated="Use #gupnp_didl_lite_object_add_creator instead."
              deprecated-version="0.5.3">
        <doc xml:whitespace="preserve">Set the creator of the @object to @creator.</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <parameter name="creator" transfer-ownership="none">
            <doc xml:whitespace="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:whitespace="preserve">Set the date of the @object to @date.</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <parameter name="date" transfer-ownership="none">
            <doc xml:whitespace="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:whitespace="preserve">Set the description of the @object to @description.</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <parameter name="description" transfer-ownership="none">
            <doc xml:whitespace="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:whitespace="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>
          <parameter name="dlna_managed" transfer-ownership="none">
            <doc xml:whitespace="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:whitespace="preserve">Set the genre of the @object to @genre.</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <parameter name="genre" transfer-ownership="none">
            <doc xml:whitespace="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:whitespace="preserve">Set the ID of the @object to @id.</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <parameter name="id" transfer-ownership="none">
            <doc xml:whitespace="preserve">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:whitespace="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>
          <parameter name="parent_id" transfer-ownership="none">
            <doc xml:whitespace="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:whitespace="preserve">Set the restricted status of @object to @restricted.</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <parameter name="restricted" transfer-ownership="none">
            <doc xml:whitespace="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:whitespace="preserve">Set the title of the @object to @title.</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <parameter name="title" transfer-ownership="none">
            <doc xml:whitespace="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:whitespace="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>
          <parameter name="track_number" transfer-ownership="none">
            <doc xml:whitespace="preserve">The original track number</doc>
            <type name="gint" c:type="int"/>
          </parameter>
        </parameters>
      </method>
      <method name="set_upnp_class"
              c:identifier="gupnp_didl_lite_object_set_upnp_class">
        <doc xml:whitespace="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>
          <parameter name="upnp_class" transfer-ownership="none">
            <doc xml:whitespace="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:whitespace="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>
          <parameter name="write_status" transfer-ownership="none">
            <doc xml:whitespace="preserve">The write status string</doc>
            <type name="utf8" c:type="const char*"/>
          </parameter>
        </parameters>
      </method>
      <property name="album" writable="1" transfer-ownership="none">
        <doc xml:whitespace="preserve">The album of this object.</doc>
        <type name="utf8"/>
      </property>
      <property name="album-art" writable="1" transfer-ownership="none">
        <doc xml:whitespace="preserve">The URI to album art of this object.</doc>
        <type name="utf8"/>
      </property>
      <property name="artist"
                deprecated="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."
                deprecated-version="0.5.3"
                writable="1"
                transfer-ownership="none">
        <doc xml:whitespace="preserve">The artist of this object.</doc>
        <type name="utf8"/>
      </property>
      <property name="author"
                deprecated="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."
                deprecated-version="0.5.3"
                writable="1"
                transfer-ownership="none">
        <doc xml:whitespace="preserve">The author of this object.</doc>
        <type name="utf8"/>
      </property>
      <property name="creator"
                deprecated="Use #gupnp_didl_lite_object_get_creators and #gupnp_didl_lite_object_add_creator instead since unlike this property, they are capable of dealing with multiple creator nodes."
                deprecated-version="0.5.3"
                writable="1"
                transfer-ownership="none">
        <doc xml:whitespace="preserve">The creator of this object.</doc>
        <type name="utf8"/>
      </property>
      <property name="date" writable="1" transfer-ownership="none">
        <doc xml:whitespace="preserve">The date of this object.</doc>
        <type name="utf8"/>
      </property>
      <property name="dc-namespace"
                writable="1"
                construct-only="1"
                transfer-ownership="none">
        <doc xml:whitespace="preserve">Pointer to the DublinCore namespace registered with the XML document
containing this object.</doc>
        <type name="gpointer"/>
      </property>
      <property name="description" writable="1" transfer-ownership="none">
        <doc xml:whitespace="preserve">The description of this object.</doc>
        <type name="utf8"/>
      </property>
      <property name="dlna-managed" writable="1" transfer-ownership="none">
        <doc xml:whitespace="preserve">The 'dlna:dlnaManaged' attribute.</doc>
        <type name="OCMFlags"/>
      </property>
      <property name="dlna-namespace"
                writable="1"
                construct-only="1"
                transfer-ownership="none">
        <doc xml:whitespace="preserve">Pointer to the DLNA metadata namespace registered with the XML
document containing this object.</doc>
        <type name="gpointer"/>
      </property>
      <property name="genre" writable="1" transfer-ownership="none">
        <doc xml:whitespace="preserve">The genre of this object.</doc>
        <type name="utf8"/>
      </property>
      <property name="id" writable="1" transfer-ownership="none">
        <doc xml:whitespace="preserve">The ID of this object.</doc>
        <type name="utf8"/>
      </property>
      <property name="parent-id" writable="1" transfer-ownership="none">
        <doc xml:whitespace="preserve">The ID of the parent container of this object.</doc>
        <type name="utf8"/>
      </property>
      <property name="restricted" writable="1" transfer-ownership="none">
        <doc xml:whitespace="preserve">Whether this object is restricted.</doc>
        <type name="gboolean"/>
      </property>
      <property name="title" writable="1" transfer-ownership="none">
        <doc xml:whitespace="preserve">The title of this object.</doc>
        <type name="utf8"/>
      </property>
      <property name="track-number" writable="1" transfer-ownership="none">
        <doc xml:whitespace="preserve">The original track number of this object.</doc>
        <type name="gint"/>
      </property>
      <property name="upnp-class" writable="1" transfer-ownership="none">
        <doc xml:whitespace="preserve">The UPnP class of this object.</doc>
        <type name="utf8"/>
      </property>
      <property name="upnp-namespace"
                writable="1"
                construct-only="1"
                transfer-ownership="none">
        <doc xml:whitespace="preserve">Pointer to the UPnP namespace registered with the XML document
containing this object.</doc>
        <type name="gpointer"/>
      </property>
      <property name="write-status" writable="1" transfer-ownership="none">
        <doc xml:whitespace="preserve">The write status of this object.</doc>
        <type name="utf8"/>
      </property>
      <property name="xml-doc"
                stability="Private"
                readable="0"
                writable="1"
                construct-only="1"
                transfer-ownership="none">
        <doc xml:whitespace="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:whitespace="preserve">The pointer to object node in XML document.</doc>
        <type name="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:whitespace="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>
          <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>
          <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>
          <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:whitespace="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:whitespace="preserve">TRUE on success.</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <parameter name="didl" transfer-ownership="none">
            <doc xml:whitespace="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:whitespace="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"/>
        </return-value>
        <parameters>
          <parameter name="container" transfer-ownership="none">
            <doc xml:whitespace="preserve">The now available #GUPnPDIDLLiteContainer</doc>
            <type name="DIDLLiteContainer"/>
          </parameter>
        </parameters>
      </glib:signal>
      <glib:signal name="item-available" when="last">
        <doc xml:whitespace="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"/>
        </return-value>
        <parameters>
          <parameter name="item" transfer-ownership="none">
            <doc xml:whitespace="preserve">The now available #GUPnPDIDLLiteItem</doc>
            <type name="DIDLLiteItem"/>
          </parameter>
        </parameters>
      </glib:signal>
      <glib:signal name="object-available" when="last">
        <doc xml:whitespace="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"/>
        </return-value>
        <parameters>
          <parameter name="object" transfer-ownership="none">
            <doc xml:whitespace="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:whitespace="preserve">Get the number of audio channels in the @resource.</doc>
        <return-value transfer-ownership="none">
          <doc xml:whitespace="preserve">The number of audio channels in the @resource or -1.</doc>
          <type name="gint" c:type="int"/>
        </return-value>
      </method>
      <method name="get_bitrate"
              c:identifier="gupnp_didl_lite_resource_get_bitrate">
        <doc xml:whitespace="preserve">Get the bitrate (in bytes per second) of the @resource.</doc>
        <return-value transfer-ownership="none">
          <doc xml:whitespace="preserve">The bitrate (in bytes per second) of the @resource or -1.</doc>
          <type name="gint" c:type="int"/>
        </return-value>
      </method>
      <method name="get_bits_per_sample"
              c:identifier="gupnp_didl_lite_resource_get_bits_per_sample">
        <doc xml:whitespace="preserve">Get the sample size of the @resource.</doc>
        <return-value transfer-ownership="none">
          <doc xml:whitespace="preserve">The number of bits per sample of the @resource or -1.</doc>
          <type name="gint" c:type="int"/>
        </return-value>
      </method>
      <method name="get_color_depth"
              c:identifier="gupnp_didl_lite_resource_get_color_depth">
        <doc xml:whitespace="preserve">Get the color-depth of this image/video resource.</doc>
        <return-value transfer-ownership="none">
          <doc xml:whitespace="preserve">The color depth of the @resource or -1.</doc>
          <type name="gint" c:type="int"/>
        </return-value>
      </method>
      <method name="get_duration"
              c:identifier="gupnp_didl_lite_resource_get_duration">
        <doc xml:whitespace="preserve">Get the duration (in seconds) of the @resource.</doc>
        <return-value transfer-ownership="none">
          <doc xml:whitespace="preserve">The duration (in seconds) of the @resource or -1.</doc>
          <type name="glong" c:type="long"/>
        </return-value>
      </method>
      <method name="get_height"
              c:identifier="gupnp_didl_lite_resource_get_height">
        <doc xml:whitespace="preserve">Get the height of this image/video resource.</doc>
        <return-value transfer-ownership="none">
          <doc xml:whitespace="preserve">The height of the @resource or -1.</doc>
          <type name="gint" c:type="int"/>
        </return-value>
      </method>
      <method name="get_import_uri"
              c:identifier="gupnp_didl_lite_resource_get_import_uri">
        <doc xml:whitespace="preserve">Get the import URI associated with the @resource.</doc>
        <return-value transfer-ownership="none">
          <doc xml:whitespace="preserve">The import URI or %NULL.</doc>
          <type name="utf8" c:type="const char*"/>
        </return-value>
      </method>
      <method name="get_protection"
              c:identifier="gupnp_didl_lite_resource_get_protection">
        <doc xml:whitespace="preserve">Get the protection system used by the @resource.</doc>
        <return-value transfer-ownership="none">
          <doc xml:whitespace="preserve">The protection system in use by the @resource or %NULL.</doc>
          <type name="utf8" c:type="const char*"/>
        </return-value>
      </method>
      <method name="get_protocol_info"
              c:identifier="gupnp_didl_lite_resource_get_protocol_info">
        <doc xml:whitespace="preserve">Get the protocol info associated with the @resource.</doc>
        <return-value transfer-ownership="none">
          <doc xml:whitespace="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>
      </method>
      <method name="get_sample_freq"
              c:identifier="gupnp_didl_lite_resource_get_sample_freq">
        <doc xml:whitespace="preserve">Get the sample frequency of the @resource.</doc>
        <return-value transfer-ownership="none">
          <doc xml:whitespace="preserve">The sample frequency of the @resource or -1.</doc>
          <type name="gint" c:type="int"/>
        </return-value>
      </method>
      <method name="get_size" c:identifier="gupnp_didl_lite_resource_get_size">
        <doc xml:whitespace="preserve">Get the size (in bytes) of the @resource.</doc>
        <return-value transfer-ownership="none">
          <doc xml:whitespace="preserve">The size (in bytes) of the @resource or -1.</doc>
          <type name="glong" c:type="long"/>
        </return-value>
      </method>
      <method name="get_size64"
              c:identifier="gupnp_didl_lite_resource_get_size64">
        <doc xml:whitespace="preserve">Get the size (in bytes) of the @resource.</doc>
        <return-value transfer-ownership="none">
          <doc xml:whitespace="preserve">The size (in bytes) of the @resource or -1.</doc>
          <type name="gint64" c:type="gint64"/>
        </return-value>
      </method>
      <method name="get_uri" c:identifier="gupnp_didl_lite_resource_get_uri">
        <doc xml:whitespace="preserve">Get the URI associated with the @resource.</doc>
        <return-value transfer-ownership="none">
          <doc xml:whitespace="preserve">The of URI the @resource or %NULL.</doc>
          <type name="utf8" c:type="const char*"/>
        </return-value>
      </method>
      <method name="get_width"
              c:identifier="gupnp_didl_lite_resource_get_width">
        <doc xml:whitespace="preserve">Get the width of this image/video resource.</doc>
        <return-value transfer-ownership="none">
          <doc xml:whitespace="preserve">The width of this image/video resource or -1.</doc>
          <type name="gint" c:type="int"/>
        </return-value>
      </method>
      <method name="get_xml_node"
              c:identifier="gupnp_didl_lite_resource_get_xml_node">
        <doc xml:whitespace="preserve">Get the pointer to res node in XML document.</doc>
        <return-value transfer-ownership="none">
          <doc xml:whitespace="preserve">The pointer to res node in XML document.</doc>
          <type name="libxml2.Node" c:type="xmlNode*"/>
        </return-value>
      </method>
      <method name="set_audio_channels"
              c:identifier="gupnp_didl_lite_resource_set_audio_channels">
        <doc xml:whitespace="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:whitespace="preserve">The number of audio channels in the @resource or -1.</doc>
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <parameter name="n_channels" transfer-ownership="none">
            <doc xml:whitespace="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:whitespace="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:whitespace="preserve">None.</doc>
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <parameter name="bitrate" transfer-ownership="none">
            <doc xml:whitespace="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:whitespace="preserve">Set the sample size of the @resource. Passing a negative number will unset
this property.</doc>
        <return-value transfer-ownership="none">
          <doc xml:whitespace="preserve">None.</doc>
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <parameter name="sample_size" transfer-ownership="none">
            <doc xml:whitespace="preserve">The number of bits per sample</doc>
            <type name="gint" c:type="int"/>
          </parameter>
        </parameters>
      </method>
      <method name="set_color_depth"
              c:identifier="gupnp_didl_lite_resource_set_color_depth">
        <doc xml:whitespace="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:whitespace="preserve">None.</doc>
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <parameter name="color_depth" transfer-ownership="none">
            <doc xml:whitespace="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:whitespace="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:whitespace="preserve">None.</doc>
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <parameter name="duration" transfer-ownership="none">
            <doc xml:whitespace="preserve">The duration (in seconds)</doc>
            <type name="glong" c:type="long"/>
          </parameter>
        </parameters>
      </method>
      <method name="set_height"
              c:identifier="gupnp_didl_lite_resource_set_height">
        <doc xml:whitespace="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:whitespace="preserve">None.</doc>
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <parameter name="height" transfer-ownership="none">
            <doc xml:whitespace="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:whitespace="preserve">Set the import URI associated with the @resource.</doc>
        <return-value transfer-ownership="none">
          <doc xml:whitespace="preserve">None.</doc>
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <parameter name="import_uri" transfer-ownership="none">
            <doc xml:whitespace="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:whitespace="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:whitespace="preserve">None.</doc>
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <parameter name="protection" transfer-ownership="none">
            <doc xml:whitespace="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:whitespace="preserve">Set the protocol info associated with the @resource.</doc>
        <return-value transfer-ownership="none">
          <doc xml:whitespace="preserve">None.</doc>
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <parameter name="info" transfer-ownership="none">
            <doc xml:whitespace="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:whitespace="preserve">Set the sample frequency of the @resource. Passing a negative number will
unset this property.</doc>
        <return-value transfer-ownership="none">
          <doc xml:whitespace="preserve">None.</doc>
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <parameter name="sample_freq" transfer-ownership="none">
            <doc xml:whitespace="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:whitespace="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:whitespace="preserve">None.</doc>
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <parameter name="size" transfer-ownership="none">
            <doc xml:whitespace="preserve">The size (in bytes)</doc>
            <type name="glong" c:type="long"/>
          </parameter>
        </parameters>
      </method>
      <method name="set_size64"
              c:identifier="gupnp_didl_lite_resource_set_size64">
        <doc xml:whitespace="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:whitespace="preserve">None.</doc>
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <parameter name="size" transfer-ownership="none">
            <doc xml:whitespace="preserve">The size (in bytes)</doc>
            <type name="gint64" c:type="gint64"/>
          </parameter>
        </parameters>
      </method>
      <method name="set_uri" c:identifier="gupnp_didl_lite_resource_set_uri">
        <doc xml:whitespace="preserve">Set the URI associated with the @resource.</doc>
        <return-value transfer-ownership="none">
          <doc xml:whitespace="preserve">None.</doc>
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <parameter name="uri" transfer-ownership="none">
            <doc xml:whitespace="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:whitespace="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:whitespace="preserve">None.</doc>
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <parameter name="width" transfer-ownership="none">
            <doc xml:whitespace="preserve">The width</doc>
            <type name="gint" c:type="int"/>
          </parameter>
        </parameters>
      </method>
      <property name="audio-channels" writable="1" transfer-ownership="none">
        <doc xml:whitespace="preserve">The number of audio channels in this resource.</doc>
        <type name="gint"/>
      </property>
      <property name="bitrate" writable="1" transfer-ownership="none">
        <doc xml:whitespace="preserve">The bitrate of this resource.</doc>
        <type name="gint"/>
      </property>
      <property name="bits-per-sample" writable="1" transfer-ownership="none">
        <doc xml:whitespace="preserve">The sample size of this resource.</doc>
        <type name="gint"/>
      </property>
      <property name="color-depth" writable="1" transfer-ownership="none">
        <doc xml:whitespace="preserve">The color-depth of this image/video resource.</doc>
        <type name="gint"/>
      </property>
      <property name="duration" writable="1" transfer-ownership="none">
        <doc xml:whitespace="preserve">The duration (in seconds) of this resource.</doc>
        <type name="glong"/>
      </property>
      <property name="height" writable="1" transfer-ownership="none">
        <doc xml:whitespace="preserve">The height of this image/video resource.</doc>
        <type name="gint"/>
      </property>
      <property name="import-uri" writable="1" transfer-ownership="none">
        <doc xml:whitespace="preserve">The Import URI associated with this resource.</doc>
        <type name="utf8"/>
      </property>
      <property name="protection" writable="1" transfer-ownership="none">
        <doc xml:whitespace="preserve">The protection system used for this resource.</doc>
        <type name="utf8"/>
      </property>
      <property name="protocol-info" writable="1" transfer-ownership="none">
        <doc xml:whitespace="preserve">The protocol info associated with this resource.</doc>
        <type name="ProtocolInfo"/>
      </property>
      <property name="sample-freq" writable="1" transfer-ownership="none">
        <doc xml:whitespace="preserve">The sample frequency of this resource.</doc>
        <type name="gint"/>
      </property>
      <property name="size" writable="1" transfer-ownership="none">
        <doc xml:whitespace="preserve">The size (in bytes) of this resource.</doc>
        <type name="glong"/>
      </property>
      <property name="size64" writable="1" transfer-ownership="none">
        <doc xml:whitespace="preserve">The size (in bytes) of this resource.</doc>
        <type name="gint64"/>
      </property>
      <property name="uri" writable="1" transfer-ownership="none">
        <doc xml:whitespace="preserve">The URI associated with this resource.</doc>
        <type name="utf8"/>
      </property>
      <property name="width" writable="1" transfer-ownership="none">
        <doc xml:whitespace="preserve">The width of this image/video resource.</doc>
        <type name="gint"/>
      </property>
      <property name="xml-doc"
                stability="Private"
                readable="0"
                writable="1"
                construct-only="1"
                transfer-ownership="none">
        <doc xml:whitespace="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:whitespace="preserve">The pointer to res node in XML document.</doc>
        <type name="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">
        <return-value transfer-ownership="full">
          <doc xml:whitespace="preserve">A new #GUPnPDIDLLiteWriter object.</doc>
          <type name="DIDLLiteWriter" c:type="GUPnPDIDLLiteWriter*"/>
        </return-value>
        <parameters>
          <parameter name="language" transfer-ownership="none">
            <doc xml:whitespace="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:whitespace="preserve">Creates a new container, attaches it to @writer and returns it.</doc>
        <return-value transfer-ownership="full">
          <doc xml:whitespace="preserve">A new #GUPnPDIDLLiteContainer object. Unref after usage.</doc>
          <type name="DIDLLiteContainer" c:type="GUPnPDIDLLiteContainer*"/>
        </return-value>
      </method>
      <method name="add_descriptor"
              c:identifier="gupnp_didl_lite_writer_add_descriptor">
        <doc xml:whitespace="preserve">Creates a new descriptor, attaches it to @object and returns it.</doc>
        <return-value transfer-ownership="full">
          <doc xml:whitespace="preserve">A new #GUPnPDIDLLiteDescriptor object. Unref after usage.</doc>
          <type name="DIDLLiteDescriptor" c:type="GUPnPDIDLLiteDescriptor*"/>
        </return-value>
      </method>
      <method name="add_item" c:identifier="gupnp_didl_lite_writer_add_item">
        <doc xml:whitespace="preserve">Creates a new item, attaches it to @writer and returns it.</doc>
        <return-value transfer-ownership="full">
          <doc xml:whitespace="preserve">A new #GUPnPDIDLLiteItem object. Unref after usage.</doc>
          <type name="DIDLLiteItem" c:type="GUPnPDIDLLiteItem*"/>
        </return-value>
      </method>
      <method name="filter" c:identifier="gupnp_didl_lite_writer_filter">
        <doc xml:whitespace="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:whitespace="preserve">None.</doc>
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <parameter name="filter" transfer-ownership="none">
            <doc xml:whitespace="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:whitespace="preserve">Get the language the DIDL-Lite fragment is in.</doc>
        <return-value transfer-ownership="none">
          <doc xml:whitespace="preserve">The language of the @writer, or %NULL.</doc>
          <type name="utf8" c:type="const char*"/>
        </return-value>
      </method>
      <method name="get_string"
              c:identifier="gupnp_didl_lite_writer_get_string">
        <doc xml:whitespace="preserve">Creates a string representation of the DIDL-Lite XML document.</doc>
        <return-value transfer-ownership="full">
          <doc xml:whitespace="preserve">The DIDL-Lite XML string, or %NULL. #g_free after usage.</doc>
          <type name="utf8" c:type="char*"/>
        </return-value>
      </method>
      <method name="get_xml_node"
              c:identifier="gupnp_didl_lite_writer_get_xml_node">
        <doc xml:whitespace="preserve">Get the pointer to root node in XML document.</doc>
        <return-value transfer-ownership="none">
          <doc xml:whitespace="preserve">The pointer to root node in XML document.</doc>
          <type name="libxml2.Node" c:type="xmlNode*"/>
        </return-value>
      </method>
      <property name="language"
                writable="1"
                construct-only="1"
                transfer-ownership="none">
        <doc xml:whitespace="preserve">The language the DIDL-Lite fragment is in.</doc>
        <type name="utf8"/>
      </property>
      <property name="xml-node" transfer-ownership="none">
        <doc xml:whitespace="preserve">The pointer to root node in XML document.</doc>
        <type name="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_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:whitespace="preserve">The DLNA conversion flags for a resource.</doc>
      <member name="none"
              value="0"
              c:identifier="GUPNP_DLNA_CONVERSION_NONE"
              glib:nick="none"/>
      <member name="transcoded"
              value="1"
              c:identifier="GUPNP_DLNA_CONVERSION_TRANSCODED"
              glib:nick="transcoded"/>
    </bitfield>
    <bitfield name="DLNAFlags"
              glib:type-name="GUPnPDLNAFlags"
              glib:get-type="gupnp_dlna_flags_get_type"
              c:type="GUPnPDLNAFlags">
      <doc xml:whitespace="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.</doc>
      <member name="none"
              value="0"
              c:identifier="GUPNP_DLNA_FLAGS_NONE"
              glib:nick="none"/>
      <member name="sender_paced"
              value="2147483648"
              c:identifier="GUPNP_DLNA_FLAGS_SENDER_PACED"
              glib:nick="sender-paced"/>
      <member name="time_based_seek"
              value="1073741824"
              c:identifier="GUPNP_DLNA_FLAGS_TIME_BASED_SEEK"
              glib:nick="time-based-seek"/>
      <member name="byte_based_seek"
              value="536870912"
              c:identifier="GUPNP_DLNA_FLAGS_BYTE_BASED_SEEK"
              glib:nick="byte-based-seek"/>
      <member name="play_container"
              value="268435456"
              c:identifier="GUPNP_DLNA_FLAGS_PLAY_CONTAINER"
              glib:nick="play-container"/>
      <member name="s0_increase"
              value="134217728"
              c:identifier="GUPNP_DLNA_FLAGS_S0_INCREASE"
              glib:nick="s0-increase"/>
      <member name="sn_increase"
              value="67108864"
              c:identifier="GUPNP_DLNA_FLAGS_SN_INCREASE"
              glib:nick="sn-increase"/>
      <member name="rtsp_pause"
              value="33554432"
              c:identifier="GUPNP_DLNA_FLAGS_RTSP_PAUSE"
              glib:nick="rtsp-pause"/>
      <member name="streaming_transfer_mode"
              value="16777216"
              c:identifier="GUPNP_DLNA_FLAGS_STREAMING_TRANSFER_MODE"
              glib:nick="streaming-transfer-mode"/>
      <member name="interactive_transfer_mode"
              value="8388608"
              c:identifier="GUPNP_DLNA_FLAGS_INTERACTIVE_TRANSFER_MODE"
              glib:nick="interactive-transfer-mode"/>
      <member name="background_transfer_mode"
              value="4194304"
              c:identifier="GUPNP_DLNA_FLAGS_BACKGROUND_TRANSFER_MODE"
              glib:nick="background-transfer-mode"/>
      <member name="connection_stall"
              value="2097152"
              c:identifier="GUPNP_DLNA_FLAGS_CONNECTION_STALL"
              glib:nick="connection-stall"/>
      <member name="dlna_v15"
              value="1048576"
              c:identifier="GUPNP_DLNA_FLAGS_DLNA_V15"
              glib:nick="dlna-v15"/>
    </bitfield>
    <bitfield name="DLNAOperation"
              glib:type-name="GUPnPDLNAOperation"
              glib:get-type="gupnp_dlna_operation_get_type"
              c:type="GUPnPDLNAOperation">
      <doc xml:whitespace="preserve">The seek operations supported by a resource.</doc>
      <member name="none"
              value="0"
              c:identifier="GUPNP_DLNA_OPERATION_NONE"
              glib:nick="none"/>
      <member name="range"
              value="1"
              c:identifier="GUPNP_DLNA_OPERATION_RANGE"
              glib:nick="range"/>
      <member name="timeseek"
              value="16"
              c:identifier="GUPNP_DLNA_OPERATION_TIMESEEK"
              glib:nick="timeseek"/>
    </bitfield>
    <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:whitespace="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:whitespace="preserve">Parses the xml fragment from a LastChange event.</doc>
        <return-value transfer-ownership="none">
          <doc xml:whitespace="preserve">TRUE on success.</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <parameter name="instance_id" transfer-ownership="none">
            <doc xml:whitespace="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:whitespace="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:whitespace="preserve">The location where to store any error, or NULL</doc>
            <type name="GLib.Error" c:type="GError**"/>
          </parameter>
          <parameter transfer-ownership="none">
            <varargs>
            </varargs>
          </parameter>
        </parameters>
      </method>
      <method name="parse_last_change_valist"
              c:identifier="gupnp_last_change_parser_parse_last_change_valist"
              introspectable="0">
        <doc xml:whitespace="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:whitespace="preserve">TRUE on success.</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <parameter name="instance_id" transfer-ownership="none">
            <doc xml:whitespace="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:whitespace="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:whitespace="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:whitespace="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>
    <bitfield name="OCMFlags"
              glib:type-name="GUPnPOCMFlags"
              glib:get-type="gupnp_ocm_flags_get_type"
              c:type="GUPnPOCMFlags">
      <doc xml:whitespace="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"/>
      <member name="upload"
              value="1"
              c:identifier="GUPNP_OCM_FLAGS_UPLOAD"
              glib:nick="upload"/>
      <member name="create_container"
              value="2"
              c:identifier="GUPNP_OCM_FLAGS_CREATE_CONTAINER"
              glib:nick="create-container"/>
      <member name="destroyable"
              value="4"
              c:identifier="GUPNP_OCM_FLAGS_DESTROYABLE"
              glib:nick="destroyable"/>
      <member name="upload_destroyable"
              value="8"
              c:identifier="GUPNP_OCM_FLAGS_UPLOAD_DESTROYABLE"
              glib:nick="upload-destroyable"/>
      <member name="change_metadata"
              value="16"
              c:identifier="GUPNP_OCM_FLAGS_CHANGE_METADATA"
              glib:nick="change-metadata"/>
    </bitfield>
    <enumeration name="ProtocolError"
                 c:type="GUPnPProtocolError"
                 glib:error-domain="gupnp-protocol-error">
      <doc xml:whitespace="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"/>
      <member name="other"
              value="1"
              c:identifier="GUPNP_PROTOCOL_ERROR_OTHER"/>
    </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:whitespace="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:whitespace="preserve">Parses the @protocol_info string and creates a new #GUPnPProtocolInfo object
as a result.</doc>
        <return-value transfer-ownership="full">
          <doc xml:whitespace="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:whitespace="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:whitespace="preserve">Get the DLNA conversion flags.</doc>
        <return-value transfer-ownership="none">
          <doc xml:whitespace="preserve">The DLNA conversion flags.</doc>
          <type name="DLNAConversion" c:type="GUPnPDLNAConversion"/>
        </return-value>
      </method>
      <method name="get_dlna_flags"
              c:identifier="gupnp_protocol_info_get_dlna_flags">
        <doc xml:whitespace="preserve">Get the gereric DLNA flags.</doc>
        <return-value transfer-ownership="none">
          <doc xml:whitespace="preserve">The generic DLNA flags.</doc>
          <type name="DLNAFlags" c:type="GUPnPDLNAFlags"/>
        </return-value>
      </method>
      <method name="get_dlna_operation"
              c:identifier="gupnp_protocol_info_get_dlna_operation">
        <doc xml:whitespace="preserve">Get the DLNA operation flags.</doc>
        <return-value transfer-ownership="none">
          <doc xml:whitespace="preserve">The DLNA operation flags.</doc>
          <type name="DLNAOperation" c:type="GUPnPDLNAOperation"/>
        </return-value>
      </method>
      <method name="get_dlna_profile"
              c:identifier="gupnp_protocol_info_get_dlna_profile">
        <doc xml:whitespace="preserve">Get the DLNA profile of this info.</doc>
        <return-value transfer-ownership="none">
          <doc xml:whitespace="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>
      </method>
      <method name="get_mime_type"
              c:identifier="gupnp_protocol_info_get_mime_type">
        <doc xml:whitespace="preserve">Get the MIME-type of this info.</doc>
        <return-value transfer-ownership="none">
          <doc xml:whitespace="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>
      </method>
      <method name="get_network"
              c:identifier="gupnp_protocol_info_get_network">
        <doc xml:whitespace="preserve">Get the network this info is associated with.</doc>
        <return-value transfer-ownership="none">
          <doc xml:whitespace="preserve">The network string or %NULL. This string should not be freed.</doc>
          <type name="utf8" c:type="const char*"/>
        </return-value>
      </method>
      <method name="get_play_speeds"
              c:identifier="gupnp_protocol_info_get_play_speeds">
        <doc xml:whitespace="preserve">Get the allowed play speeds on this info in the form of array of strings.</doc>
        <return-value transfer-ownership="none">
          <doc xml:whitespace="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>
      </method>
      <method name="get_protocol"
              c:identifier="gupnp_protocol_info_get_protocol">
        <doc xml:whitespace="preserve">Get the protocol of this info.</doc>
        <return-value transfer-ownership="none">
          <doc xml:whitespace="preserve">The protocol of this info or %NULL. This string should not be freed.</doc>
          <type name="utf8" c:type="const char*"/>
        </return-value>
      </method>
      <method name="is_compatible"
              c:identifier="gupnp_protocol_info_is_compatible">
        <doc xml:whitespace="preserve">Checks if the given protocolInfo string is compatible with @info.</doc>
        <return-value transfer-ownership="none">
          <doc xml:whitespace="preserve">#TRUE if @protocol_info is compatible with @info, otherwise #FALSE.</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <parameter name="info2" transfer-ownership="none">
            <doc xml:whitespace="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:whitespace="preserve">Set the DLNA conversion flags.</doc>
        <return-value transfer-ownership="none">
          <doc xml:whitespace="preserve">None.</doc>
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <parameter name="conversion" transfer-ownership="none">
            <doc xml:whitespace="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:whitespace="preserve">Set the gereric DLNA flags.</doc>
        <return-value transfer-ownership="none">
          <doc xml:whitespace="preserve">None.</doc>
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <parameter name="flags" transfer-ownership="none">
            <doc xml:whitespace="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:whitespace="preserve">Set the DLNA operation flags.</doc>
        <return-value transfer-ownership="none">
          <doc xml:whitespace="preserve">None.</doc>
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <parameter name="operation" transfer-ownership="none">
            <doc xml:whitespace="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:whitespace="preserve">Set the DLNA profile of this info.</doc>
        <return-value transfer-ownership="none">
          <doc xml:whitespace="preserve">None.</doc>
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <parameter name="profile" transfer-ownership="none">
            <doc xml:whitespace="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:whitespace="preserve">Set the MIME-type of this info.</doc>
        <return-value transfer-ownership="none">
          <doc xml:whitespace="preserve">None.</doc>
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <parameter name="mime_type" transfer-ownership="none">
            <doc xml:whitespace="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:whitespace="preserve">Set the network this info is associated with.</doc>
        <return-value transfer-ownership="none">
          <doc xml:whitespace="preserve">None.</doc>
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <parameter name="network" transfer-ownership="none">
            <doc xml:whitespace="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:whitespace="preserve">Set the allowed play speeds on this info in the form of array of strings.</doc>
        <return-value transfer-ownership="none">
          <doc xml:whitespace="preserve">None.</doc>
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <parameter name="speeds" transfer-ownership="none">
            <doc xml:whitespace="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:whitespace="preserve">Set the protocol of this info.</doc>
        <return-value transfer-ownership="none">
          <doc xml:whitespace="preserve">None.</doc>
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <parameter name="protocol" transfer-ownership="none">
            <doc xml:whitespace="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:whitespace="preserve">Provides the string representation of @info.</doc>
        <return-value transfer-ownership="full">
          <doc xml:whitespace="preserve">String representation of @info. #g_free after usage.</doc>
          <type name="utf8" c:type="char*"/>
        </return-value>
      </method>
      <property name="dlna-conversion" writable="1" transfer-ownership="none">
        <doc xml:whitespace="preserve">The DLNA conversion flags.</doc>
        <type name="DLNAConversion"/>
      </property>
      <property name="dlna-flags" writable="1" transfer-ownership="none">
        <doc xml:whitespace="preserve">Various generic DLNA flags.</doc>
        <type name="DLNAFlags"/>
      </property>
      <property name="dlna-operation" writable="1" transfer-ownership="none">
        <doc xml:whitespace="preserve">The DLNA operation flags.</doc>
        <type name="DLNAOperation"/>
      </property>
      <property name="dlna-profile" writable="1" transfer-ownership="none">
        <doc xml:whitespace="preserve">The DLNA profile of this info.</doc>
        <type name="utf8"/>
      </property>
      <property name="mime-type" writable="1" transfer-ownership="none">
        <doc xml:whitespace="preserve">The MIME-type of this info.</doc>
        <type name="utf8"/>
      </property>
      <property name="network" writable="1" transfer-ownership="none">
        <doc xml:whitespace="preserve">The network this info is associated with.</doc>
        <type name="utf8"/>
      </property>
      <property name="play-speeds" writable="1" transfer-ownership="none">
        <doc xml:whitespace="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:whitespace="preserve">The protocol of this info.</doc>
        <type name="utf8"/>
      </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:whitespace="preserve">The possible operators in SearchCriteria strings.</doc>
      <member name="none"
              value="271"
              c:identifier="GUPNP_SEARCH_CRITERIA_OP_EQ"
              glib:nick="none"/>
      <member name="none"
              value="272"
              c:identifier="GUPNP_SEARCH_CRITERIA_OP_NEQ"
              glib:nick="none"/>
      <member name="none"
              value="273"
              c:identifier="GUPNP_SEARCH_CRITERIA_OP_LESS"
              glib:nick="none"/>
      <member name="none"
              value="274"
              c:identifier="GUPNP_SEARCH_CRITERIA_OP_LEQ"
              glib:nick="none"/>
      <member name="none"
              value="275"
              c:identifier="GUPNP_SEARCH_CRITERIA_OP_GREATER"
              glib:nick="none"/>
      <member name="none"
              value="276"
              c:identifier="GUPNP_SEARCH_CRITERIA_OP_GEQ"
              glib:nick="none"/>
      <member name="none"
              value="277"
              c:identifier="GUPNP_SEARCH_CRITERIA_OP_CONTAINS"
              glib:nick="none"/>
      <member name="none"
              value="278"
              c:identifier="GUPNP_SEARCH_CRITERIA_OP_DOES_NOT_CONTAIN"
              glib:nick="none"/>
      <member name="none"
              value="279"
              c:identifier="GUPNP_SEARCH_CRITERIA_OP_DERIVED_FROM"
              glib:nick="none"/>
      <member name="none"
              value="280"
              c:identifier="GUPNP_SEARCH_CRITERIA_OP_EXISTS"
              glib:nick="none"/>
    </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:whitespace="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>
      </virtual-method>
      <virtual-method name="conjunction">
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
      </virtual-method>
      <virtual-method name="disjunction">
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
      </virtual-method>
      <virtual-method name="end_parens">
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
      </virtual-method>
      <virtual-method name="expression" throws="1">
        <return-value transfer-ownership="none">
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <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:whitespace="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:whitespace="preserve">TRUE on success.</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <parameter name="text" transfer-ownership="none">
            <doc xml:whitespace="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:whitespace="preserve">The ::begin_parens signal is emitted to mark the beginning of a
parenthetical expression.</doc>
        <return-value transfer-ownership="none">
          <type name="none"/>
        </return-value>
      </glib:signal>
      <glib:signal name="conjunction" when="last">
        <doc xml:whitespace="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"/>
        </return-value>
      </glib:signal>
      <glib:signal name="disjunction" when="last">
        <doc xml:whitespace="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"/>
        </return-value>
      </glib:signal>
      <glib:signal name="end-parens" when="last">
        <doc xml:whitespace="preserve">The ::end_parens signal is emitted to mark the end of a parenthetical
expression.</doc>
        <return-value transfer-ownership="none">
          <type name="none"/>
        </return-value>
      </glib:signal>
      <glib:signal name="expression" when="last">
        <doc xml:whitespace="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"/>
        </return-value>
        <parameters>
          <parameter name="property" transfer-ownership="none">
            <doc xml:whitespace="preserve">The property</doc>
            <type name="utf8"/>
          </parameter>
          <parameter name="op" transfer-ownership="none">
            <doc xml:whitespace="preserve">The operator as #GUPnPSearchCriteriaOp</doc>
            <type name="SearchCriteriaOp"/>
          </parameter>
          <parameter name="value" transfer-ownership="none">
            <doc xml:whitespace="preserve">The value as string</doc>
            <type name="utf8"/>
          </parameter>
          <parameter name="error" transfer-ownership="none">
            <doc xml:whitespace="preserve">Place-holder for any possible errors from handler</doc>
            <type name="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"/>
    </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>
