<?xml version="1.0"?>
<!-- This file was automatically generated from C sources - DO NOT EDIT!
To affect the contents of this file, edit the original C definitions,
and/or use gtk-doc annotations.  -->
<repository version="1.2"
            xmlns="http://www.gtk.org/introspection/core/1.0"
            xmlns:c="http://www.gtk.org/introspection/c/1.0"
            xmlns:glib="http://www.gtk.org/introspection/glib/1.0">
  <include name="GObject" version="2.0"/>
  <include name="Gst" version="1.0"/>
  <include name="Soup" version="3.0"/>
  <c:include name="libdmapsharing/dmap.h"/>
  <namespace name="Dmap"
             version="4.0"
             shared-library="libdmapsharing-4.0.so.0.0"
             c:identifier-prefixes="Dmap"
             c:symbol-prefixes="dmap">
    <alias name="Bits" c:type="DmapBits">
      <source-position filename="dmap-share.h" line="171"/>
      <type name="guint64" c:type="guint64"/>
    </alias>
    <function-macro name="AV_CONNECTION"
                    c:identifier="DMAP_AV_CONNECTION"
                    introspectable="0">
      <doc xml:space="preserve"
           filename="dmap-av-connection.h"
           line="39">Casts a #DmapAvConnection or derived pointer into a (DmapAvConnection *) pointer.
Depending on the current debugging level, this function may invoke
certain runtime checks to identify invalid casts.</doc>
      <source-position filename="dmap-av-connection.h" line="47"/>
      <parameters>
        <parameter name="o">
          <doc xml:space="preserve"
               filename="dmap-av-connection.h"
               line="41">Object which is subject to casting.</doc>
        </parameter>
      </parameters>
    </function-macro>
    <function-macro name="AV_CONNECTION_CLASS"
                    c:identifier="DMAP_AV_CONNECTION_CLASS"
                    introspectable="0">
      <doc xml:space="preserve"
           filename="dmap-av-connection.h"
           line="48">Casts a derived #DmapAvConnectionClass structure into a #DmapAvConnectionClass
structure.</doc>
      <source-position filename="dmap-av-connection.h" line="55"/>
      <parameters>
        <parameter name="k">
          <doc xml:space="preserve"
               filename="dmap-av-connection.h"
               line="50">a valid #DmapAvConnectionClass</doc>
        </parameter>
      </parameters>
    </function-macro>
    <function-macro name="AV_CONNECTION_GET_CLASS"
                    c:identifier="DMAP_AV_CONNECTION_GET_CLASS"
                    introspectable="0">
      <doc xml:space="preserve"
           filename="dmap-av-connection.h"
           line="71">Get the class structure associated to a #DmapAvConnection instance.</doc>
      <source-position filename="dmap-av-connection.h" line="79"/>
      <parameters>
        <parameter name="o">
          <doc xml:space="preserve"
               filename="dmap-av-connection.h"
               line="73">a #DmapAvConnection instance.</doc>
        </parameter>
      </parameters>
    </function-macro>
    <function-macro name="AV_RECORD"
                    c:identifier="DMAP_AV_RECORD"
                    introspectable="0">
      <doc xml:space="preserve"
           filename="dmap-av-record.h"
           line="44">Casts a #DmapAvRecord or derived pointer into a (DmapAvRecord *) pointer.
Depending on the current debugging level, this function may invoke
certain runtime checks to identify invalid casts.</doc>
      <source-position filename="dmap-av-record.h" line="52"/>
      <parameters>
        <parameter name="o">
          <doc xml:space="preserve"
               filename="dmap-av-record.h"
               line="46">Object which is subject to casting.</doc>
        </parameter>
      </parameters>
    </function-macro>
    <function-macro name="AV_RECORD_GET_INTERFACE"
                    c:identifier="DMAP_AV_RECORD_GET_INTERFACE"
                    introspectable="0">
      <doc xml:space="preserve"
           filename="dmap-av-record.h"
           line="62">Get the class structure associated to a #DmapAvRecord instance.</doc>
      <source-position filename="dmap-av-record.h" line="70"/>
      <parameters>
        <parameter name="o">
          <doc xml:space="preserve"
               filename="dmap-av-record.h"
               line="64">a #DmapAvRecord instance.</doc>
        </parameter>
      </parameters>
    </function-macro>
    <function-macro name="AV_SHARE"
                    c:identifier="DMAP_AV_SHARE"
                    introspectable="0">
      <doc xml:space="preserve"
           filename="dmap-av-share.h"
           line="47">Casts a #DmapAvShare or derived pointer into a (DmapAvShare*) pointer.
Depending on the current debugging level, this function may invoke
certain runtime checks to identify invalid casts.</doc>
      <source-position filename="dmap-av-share.h" line="55"/>
      <parameters>
        <parameter name="o">
          <doc xml:space="preserve"
               filename="dmap-av-share.h"
               line="49">Object which is subject to casting.</doc>
        </parameter>
      </parameters>
    </function-macro>
    <function-macro name="AV_SHARE_CLASS"
                    c:identifier="DMAP_AV_SHARE_CLASS"
                    introspectable="0">
      <doc xml:space="preserve"
           filename="dmap-av-share.h"
           line="57">Casts a derived #DmapAvShareClass structure into a #DmapAvShareClass structure.</doc>
      <source-position filename="dmap-av-share.h" line="63"/>
      <parameters>
        <parameter name="k">
          <doc xml:space="preserve"
               filename="dmap-av-share.h"
               line="59">a valid #DmapAvShareClass</doc>
        </parameter>
      </parameters>
    </function-macro>
    <function-macro name="AV_SHARE_GET_CLASS"
                    c:identifier="DMAP_AV_SHARE_GET_CLASS"
                    introspectable="0">
      <doc xml:space="preserve"
           filename="dmap-av-share.h"
           line="82">Get the class structure associated to a #DmapAvShare instance.</doc>
      <source-position filename="dmap-av-share.h" line="90"/>
      <parameters>
        <parameter name="o">
          <doc xml:space="preserve"
               filename="dmap-av-share.h"
               line="84">a #DmapAvShare instance.</doc>
        </parameter>
      </parameters>
    </function-macro>
    <class name="AvConnection"
           c:symbol-prefix="av_connection"
           c:type="DmapAvConnection"
           parent="Connection"
           glib:type-name="DmapAvConnection"
           glib:get-type="dmap_av_connection_get_type"
           glib:type-struct="AvConnectionClass">
      <source-position filename="dmap-av-connection.h" line="84"/>
      <constructor name="new" c:identifier="dmap_av_connection_new">
        <doc xml:space="preserve"
             filename="dmap-av-connection.h"
             line="93">Create a new DAAP connection.</doc>
        <source-position filename="dmap-av-connection.h" line="105"/>
        <return-value transfer-ownership="full">
          <doc xml:space="preserve"
               filename="dmap-av-connection.h"
               line="103">a pointer to a DmapAvConnection.</doc>
          <type name="AvConnection" c:type="DmapAvConnection*"/>
        </return-value>
        <parameters>
          <parameter name="name" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="dmap-av-connection.h"
                 line="95">The name of the share to connect to.</doc>
            <type name="utf8" c:type="const char*"/>
          </parameter>
          <parameter name="host" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="dmap-av-connection.h"
                 line="96">The host of the share to connect to.</doc>
            <type name="utf8" c:type="const char*"/>
          </parameter>
          <parameter name="port" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="dmap-av-connection.h"
                 line="97">The port of the share to connect to.</doc>
            <type name="guint" c:type="guint"/>
          </parameter>
          <parameter name="db" transfer-ownership="full">
            <doc xml:space="preserve"
                 filename="dmap-av-connection.h"
                 line="98">The db that will receive the records found in the share.</doc>
            <type name="Db" c:type="DmapDb*"/>
          </parameter>
          <parameter name="factory" transfer-ownership="full">
            <doc xml:space="preserve"
                 filename="dmap-av-connection.h"
                 line="99">A factory to create records.</doc>
            <type name="RecordFactory" c:type="DmapRecordFactory*"/>
          </parameter>
        </parameters>
      </constructor>
      <field name="dmap_connection_instance">
        <type name="Connection" c:type="DmapConnection"/>
      </field>
      <field name="priv">
        <type name="AvConnectionPrivate" c:type="DmapAvConnectionPrivate*"/>
      </field>
    </class>
    <record name="AvConnectionClass"
            c:type="DmapAvConnectionClass"
            glib:is-gtype-struct-for="AvConnection">
      <source-position filename="dmap-av-connection.h" line="84"/>
      <field name="dmap_connection_class">
        <type name="ConnectionClass" c:type="DmapConnectionClass"/>
      </field>
    </record>
    <record name="AvConnectionPrivate"
            c:type="DmapAvConnectionPrivate"
            disguised="1"
            opaque="1">
      <source-position filename="dmap-av-connection.h" line="80"/>
    </record>
    <interface name="AvRecord"
               c:symbol-prefix="av_record"
               c:type="DmapAvRecord"
               glib:type-name="DmapAvRecord"
               glib:get-type="dmap_av_record_get_type"
               glib:type-struct="AvRecordInterface">
      <source-position filename="dmap-av-record.h" line="81"/>
      <function name="cmp_by_album" c:identifier="dmap_av_record_cmp_by_album">
        <doc xml:space="preserve"
             filename="dmap-av-record.h"
             line="103">Compares the two records associated with the provided keys according
to album. Suitable to sort lists of albums.</doc>
        <source-position filename="dmap-av-record.h" line="112"/>
        <return-value transfer-ownership="none">
          <type name="gint" c:type="gint"/>
        </return-value>
        <parameters>
          <parameter name="a"
                     transfer-ownership="none"
                     nullable="1"
                     allow-none="1">
            <doc xml:space="preserve"
                 filename="dmap-av-record.h"
                 line="105">first ID.</doc>
            <type name="gpointer" c:type="gpointer"/>
          </parameter>
          <parameter name="b"
                     transfer-ownership="none"
                     nullable="1"
                     allow-none="1">
            <doc xml:space="preserve"
                 filename="dmap-av-record.h"
                 line="106">second ID.</doc>
            <type name="gpointer" c:type="gpointer"/>
          </parameter>
          <parameter name="db" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="dmap-av-record.h"
                 line="107">A DmapDb for which a and b are valid ID's.</doc>
            <type name="Db" c:type="DmapDb*"/>
          </parameter>
        </parameters>
      </function>
      <virtual-method name="itunes_compat" invoker="itunes_compat">
        <source-position filename="dmap-av-record.h" line="79"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="dmap-av-record.h"
               line="89">TRUE if record is compatible with iTunes, else FALSE.</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <instance-parameter name="record" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="dmap-av-record.h"
                 line="87">A DmapAvRecord.</doc>
            <type name="AvRecord" c:type="DmapAvRecord*"/>
          </instance-parameter>
        </parameters>
      </virtual-method>
      <virtual-method name="read" invoker="read" throws="1">
        <source-position filename="dmap-av-record.h" line="80"/>
        <return-value transfer-ownership="full">
          <doc xml:space="preserve"
               filename="dmap-av-record.h"
               line="98">A GInputStream that provides read-only access to the data stream
associated with record.</doc>
          <type name="Gio.InputStream" c:type="GInputStream*"/>
        </return-value>
        <parameters>
          <instance-parameter name="record" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="dmap-av-record.h"
                 line="95">a DmapAvRecord.</doc>
            <type name="AvRecord" c:type="DmapAvRecord*"/>
          </instance-parameter>
        </parameters>
      </virtual-method>
      <method name="itunes_compat" c:identifier="dmap_av_record_itunes_compat">
        <source-position filename="dmap-av-record.h" line="91"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="dmap-av-record.h"
               line="89">TRUE if record is compatible with iTunes, else FALSE.</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <instance-parameter name="record" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="dmap-av-record.h"
                 line="87">A DmapAvRecord.</doc>
            <type name="AvRecord" c:type="DmapAvRecord*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="read" c:identifier="dmap_av_record_read" throws="1">
        <source-position filename="dmap-av-record.h" line="101"/>
        <return-value transfer-ownership="full">
          <doc xml:space="preserve"
               filename="dmap-av-record.h"
               line="98">A GInputStream that provides read-only access to the data stream
associated with record.</doc>
          <type name="Gio.InputStream" c:type="GInputStream*"/>
        </return-value>
        <parameters>
          <instance-parameter name="record" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="dmap-av-record.h"
                 line="95">a DmapAvRecord.</doc>
            <type name="AvRecord" c:type="DmapAvRecord*"/>
          </instance-parameter>
        </parameters>
      </method>
      <property name="bitrate"
                writable="1"
                transfer-ownership="none"
                default-value="0">
        <type name="gint" c:type="gint"/>
      </property>
      <property name="disc"
                writable="1"
                transfer-ownership="none"
                default-value="0">
        <type name="gint" c:type="gint"/>
      </property>
      <property name="duration"
                writable="1"
                transfer-ownership="none"
                default-value="0">
        <type name="gint" c:type="gint"/>
      </property>
      <property name="filesize"
                writable="1"
                transfer-ownership="none"
                default-value="0">
        <type name="guint64" c:type="guint64"/>
      </property>
      <property name="firstseen"
                writable="1"
                transfer-ownership="none"
                default-value="0">
        <type name="gint" c:type="gint"/>
      </property>
      <property name="format"
                writable="1"
                transfer-ownership="none"
                default-value="Unknown">
        <type name="utf8" c:type="gchar*"/>
      </property>
      <property name="has-video"
                writable="1"
                transfer-ownership="none"
                default-value="FALSE">
        <type name="gboolean" c:type="gboolean"/>
      </property>
      <property name="hash" writable="1" transfer-ownership="none">
        <array name="GLib.Array">
          <type name="gpointer" c:type="gpointer"/>
        </array>
      </property>
      <property name="location"
                writable="1"
                transfer-ownership="none"
                default-value="NULL">
        <type name="utf8" c:type="gchar*"/>
      </property>
      <property name="mediakind"
                writable="1"
                transfer-ownership="none"
                default-value="DMAP_MEDIA_KIND_MUSIC">
        <type name="MediaKind"/>
      </property>
      <property name="mtime"
                writable="1"
                transfer-ownership="none"
                default-value="0">
        <type name="gint" c:type="gint"/>
      </property>
      <property name="rating"
                writable="1"
                transfer-ownership="none"
                default-value="0">
        <type name="gint" c:type="gint"/>
      </property>
      <property name="songalbum"
                writable="1"
                transfer-ownership="none"
                default-value="Unknown">
        <type name="utf8" c:type="gchar*"/>
      </property>
      <property name="songalbumid"
                writable="1"
                transfer-ownership="none"
                default-value="0">
        <type name="gint64" c:type="gint64"/>
      </property>
      <property name="songartist"
                writable="1"
                transfer-ownership="none"
                default-value="Unknown">
        <type name="utf8" c:type="gchar*"/>
      </property>
      <property name="songgenre"
                writable="1"
                transfer-ownership="none"
                default-value="Unknown">
        <type name="utf8" c:type="gchar*"/>
      </property>
      <property name="sort-album"
                writable="1"
                transfer-ownership="none"
                default-value="Unknown">
        <type name="utf8" c:type="gchar*"/>
      </property>
      <property name="sort-artist"
                writable="1"
                transfer-ownership="none"
                default-value="Unknown">
        <type name="utf8" c:type="gchar*"/>
      </property>
      <property name="title"
                writable="1"
                transfer-ownership="none"
                default-value="Unknown">
        <type name="utf8" c:type="gchar*"/>
      </property>
      <property name="track"
                writable="1"
                transfer-ownership="none"
                default-value="0">
        <type name="gint" c:type="gint"/>
      </property>
      <property name="year"
                writable="1"
                transfer-ownership="none"
                default-value="0">
        <type name="gint" c:type="gint"/>
      </property>
    </interface>
    <record name="AvRecordInterface"
            c:type="DmapAvRecordInterface"
            glib:is-gtype-struct-for="AvRecord">
      <source-position filename="dmap-av-record.h" line="81"/>
      <field name="parent">
        <type name="GObject.TypeInterface" c:type="GTypeInterface"/>
      </field>
      <field name="itunes_compat">
        <callback name="itunes_compat">
          <source-position filename="dmap-av-record.h" line="79"/>
          <return-value transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="dmap-av-record.h"
                 line="89">TRUE if record is compatible with iTunes, else FALSE.</doc>
            <type name="gboolean" c:type="gboolean"/>
          </return-value>
          <parameters>
            <parameter name="record" transfer-ownership="none">
              <doc xml:space="preserve"
                   filename="dmap-av-record.h"
                   line="87">A DmapAvRecord.</doc>
              <type name="AvRecord" c:type="DmapAvRecord*"/>
            </parameter>
          </parameters>
        </callback>
      </field>
      <field name="read">
        <callback name="read" throws="1">
          <source-position filename="dmap-av-record.h" line="80"/>
          <return-value transfer-ownership="full">
            <doc xml:space="preserve"
                 filename="dmap-av-record.h"
                 line="98">A GInputStream that provides read-only access to the data stream
associated with record.</doc>
            <type name="Gio.InputStream" c:type="GInputStream*"/>
          </return-value>
          <parameters>
            <parameter name="record" transfer-ownership="none">
              <doc xml:space="preserve"
                   filename="dmap-av-record.h"
                   line="95">a DmapAvRecord.</doc>
              <type name="AvRecord" c:type="DmapAvRecord*"/>
            </parameter>
          </parameters>
        </callback>
      </field>
    </record>
    <class name="AvShare"
           c:symbol-prefix="av_share"
           c:type="DmapAvShare"
           parent="Share"
           glib:type-name="DmapAvShare"
           glib:get-type="dmap_av_share_get_type"
           glib:type-struct="AvShareClass">
      <source-position filename="dmap-av-share.h" line="96"/>
      <constructor name="new" c:identifier="dmap_av_share_new">
        <doc xml:space="preserve"
             filename="dmap-av-share.h"
             line="105">Creates a new DAAP share and publishes it using mDNS.</doc>
        <source-position filename="dmap-av-share.h" line="117"/>
        <return-value transfer-ownership="full">
          <doc xml:space="preserve"
               filename="dmap-av-share.h"
               line="115">a pointer to a DmapAvShare.</doc>
          <type name="AvShare" c:type="DmapAvShare*"/>
        </return-value>
        <parameters>
          <parameter name="name" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="dmap-av-share.h"
                 line="107">The name that will be published by mDNS.</doc>
            <type name="utf8" c:type="const char*"/>
          </parameter>
          <parameter name="password"
                     transfer-ownership="none"
                     nullable="1"
                     allow-none="1">
            <doc xml:space="preserve"
                 filename="dmap-av-share.h"
                 line="108">A share password or NULL.</doc>
            <type name="utf8" c:type="const char*"/>
          </parameter>
          <parameter name="db" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="dmap-av-share.h"
                 line="109">A media database.</doc>
            <type name="Db" c:type="DmapDb*"/>
          </parameter>
          <parameter name="container_db" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="dmap-av-share.h"
                 line="110">A container (album) database.</doc>
            <type name="ContainerDb" c:type="DmapContainerDb*"/>
          </parameter>
          <parameter name="transcode_mimetype"
                     transfer-ownership="none"
                     nullable="1"
                     allow-none="1">
            <doc xml:space="preserve"
                 filename="dmap-av-share.h"
                 line="111">A transcode mimetype or NULL.</doc>
            <type name="utf8" c:type="gchar*"/>
          </parameter>
        </parameters>
      </constructor>
      <field name="dmap_share_instance">
        <type name="Share" c:type="DmapShare"/>
      </field>
      <field name="priv">
        <type name="AvSharePrivate" c:type="DmapAvSharePrivate*"/>
      </field>
    </class>
    <record name="AvShareClass"
            c:type="DmapAvShareClass"
            glib:is-gtype-struct-for="AvShare">
      <source-position filename="dmap-av-share.h" line="96"/>
      <field name="dmap_share_class">
        <type name="ShareClass" c:type="DmapShareClass"/>
      </field>
    </record>
    <record name="AvSharePrivate"
            c:type="DmapAvSharePrivate"
            disguised="1"
            opaque="1">
      <source-position filename="dmap-av-share.h" line="92"/>
    </record>
    <function-macro name="CONNECTION"
                    c:identifier="DMAP_CONNECTION"
                    introspectable="0">
      <doc xml:space="preserve"
           filename="dmap-connection.h"
           line="53">Casts a #DmapConnection or derived pointer into a (DmapConnection *) pointer.
Depending on the current debugging level, this function may invoke
certain runtime checks to identify invalid casts.</doc>
      <source-position filename="dmap-connection.h" line="61"/>
      <parameters>
        <parameter name="o">
          <doc xml:space="preserve"
               filename="dmap-connection.h"
               line="55">Object which is subject to casting.</doc>
        </parameter>
      </parameters>
    </function-macro>
    <function-macro name="CONNECTION_CLASS"
                    c:identifier="DMAP_CONNECTION_CLASS"
                    introspectable="0">
      <doc xml:space="preserve"
           filename="dmap-connection.h"
           line="62">Casts a derived #DmapConnectionClass structure into a #DmapConnectionClass
structure.</doc>
      <source-position filename="dmap-connection.h" line="69"/>
      <parameters>
        <parameter name="k">
          <doc xml:space="preserve"
               filename="dmap-connection.h"
               line="64">a valid #DmapConnectionClass</doc>
        </parameter>
      </parameters>
    </function-macro>
    <function-macro name="CONNECTION_GET_CLASS"
                    c:identifier="DMAP_CONNECTION_GET_CLASS"
                    introspectable="0">
      <doc xml:space="preserve"
           filename="dmap-connection.h"
           line="85">Get the class structure associated to a #DmapConnection instance.</doc>
      <source-position filename="dmap-connection.h" line="93"/>
      <parameters>
        <parameter name="o">
          <doc xml:space="preserve"
               filename="dmap-connection.h"
               line="87">a #DmapConnection instance.</doc>
        </parameter>
      </parameters>
    </function-macro>
    <function-macro name="CONTAINER_DB"
                    c:identifier="DMAP_CONTAINER_DB"
                    introspectable="0">
      <doc xml:space="preserve"
           filename="dmap-container-db.h"
           line="42">Casts a #DmapContainerDb or derived pointer into a (DmapContainerDb*)
pointer. Depending on the current debugging level, this function may invoke
certain runtime checks to identify invalid casts.</doc>
      <source-position filename="dmap-container-db.h" line="50"/>
      <parameters>
        <parameter name="o">
          <doc xml:space="preserve"
               filename="dmap-container-db.h"
               line="44">Object which is subject to casting.</doc>
        </parameter>
      </parameters>
    </function-macro>
    <function-macro name="CONTAINER_DB_GET_INTERFACE"
                    c:identifier="DMAP_CONTAINER_DB_GET_INTERFACE"
                    introspectable="0">
      <doc xml:space="preserve"
           filename="dmap-container-db.h"
           line="61">Get the interface structure associated to a #DmapContainerDb instance.</doc>
      <source-position filename="dmap-container-db.h" line="69"/>
      <parameters>
        <parameter name="o">
          <doc xml:space="preserve"
               filename="dmap-container-db.h"
               line="63">a #DmapContainerDb instance.</doc>
        </parameter>
      </parameters>
    </function-macro>
    <function-macro name="CONTAINER_RECORD"
                    c:identifier="DMAP_CONTAINER_RECORD"
                    introspectable="0">
      <doc xml:space="preserve"
           filename="dmap-container-record.h"
           line="41">Casts a #DmapContainerRecord or derived pointer into a (DmapContainerRecord*)
pointer. Depending on the current debugging level, this function may invoke
certain runtime checks to identify invalid casts.</doc>
      <source-position filename="dmap-container-record.h" line="49"/>
      <parameters>
        <parameter name="o">
          <doc xml:space="preserve"
               filename="dmap-container-record.h"
               line="43">Object which is subject to casting.</doc>
        </parameter>
      </parameters>
    </function-macro>
    <function-macro name="CONTAINER_RECORD_GET_INTERFACE"
                    c:identifier="DMAP_CONTAINER_RECORD_GET_INTERFACE"
                    introspectable="0">
      <doc xml:space="preserve"
           filename="dmap-container-record.h"
           line="60">Get the class structure associated to a #DmapContainerRecord instance.</doc>
      <source-position filename="dmap-container-record.h" line="68"/>
      <parameters>
        <parameter name="o">
          <doc xml:space="preserve"
               filename="dmap-container-record.h"
               line="62">a #DmapContainerRecord instance.</doc>
        </parameter>
      </parameters>
    </function-macro>
    <function-macro name="CONTROL_CONNECTION"
                    c:identifier="DMAP_CONTROL_CONNECTION"
                    introspectable="0">
      <doc xml:space="preserve"
           filename="dmap-control-connection.h"
           line="39">Casts a #DmapControlConnection or derived pointer into a (DmapControlConnection *) pointer.
Depending on the current debugging level, this function may invoke
certain runtime checks to identify invalid casts.</doc>
      <source-position filename="dmap-control-connection.h" line="47"/>
      <parameters>
        <parameter name="o">
          <doc xml:space="preserve"
               filename="dmap-control-connection.h"
               line="41">Object which is subject to casting.</doc>
        </parameter>
      </parameters>
    </function-macro>
    <function-macro name="CONTROL_CONNECTION_CLASS"
                    c:identifier="DMAP_CONTROL_CONNECTION_CLASS"
                    introspectable="0">
      <doc xml:space="preserve"
           filename="dmap-control-connection.h"
           line="48">Casts a derived #DmapControlConnectionClass structure into a #DmapControlConnectionClass
structure.</doc>
      <source-position filename="dmap-control-connection.h" line="55"/>
      <parameters>
        <parameter name="k">
          <doc xml:space="preserve"
               filename="dmap-control-connection.h"
               line="50">a valid #DmapControlConnectionClass</doc>
        </parameter>
      </parameters>
    </function-macro>
    <function-macro name="CONTROL_CONNECTION_GET_CLASS"
                    c:identifier="DMAP_CONTROL_CONNECTION_GET_CLASS"
                    introspectable="0">
      <doc xml:space="preserve"
           filename="dmap-control-connection.h"
           line="71">Get the class structure associated to a #DmapControlConnection instance.</doc>
      <source-position filename="dmap-control-connection.h" line="79"/>
      <parameters>
        <parameter name="o">
          <doc xml:space="preserve"
               filename="dmap-control-connection.h"
               line="73">a #DmapControlConnection instance.</doc>
        </parameter>
      </parameters>
    </function-macro>
    <function-macro name="CONTROL_PLAYER"
                    c:identifier="DMAP_CONTROL_PLAYER"
                    introspectable="0">
      <doc xml:space="preserve"
           filename="dmap-control-player.h"
           line="39">Casts a #DmapControlPlayer or derived pointer into a (DmapControlPlayer *) pointer.
Depending on the current debugging level, this function may invoke
certain runtime checks to identify invalid casts.</doc>
      <source-position filename="dmap-control-player.h" line="47"/>
      <parameters>
        <parameter name="o">
          <doc xml:space="preserve"
               filename="dmap-control-player.h"
               line="41">Object which is subject to casting.</doc>
        </parameter>
      </parameters>
    </function-macro>
    <function-macro name="CONTROL_PLAYER_GET_INTERFACE"
                    c:identifier="DMAP_CONTROL_PLAYER_GET_INTERFACE"
                    introspectable="0">
      <doc xml:space="preserve"
           filename="dmap-control-player.h"
           line="55">Get the insterface structure associated to a #DmapControlPlayer instance.</doc>
      <source-position filename="dmap-control-player.h" line="63"/>
      <parameters>
        <parameter name="o">
          <doc xml:space="preserve"
               filename="dmap-control-player.h"
               line="57">a #DmapControlPlayer instance.</doc>
        </parameter>
      </parameters>
    </function-macro>
    <function-macro name="CONTROL_SHARE"
                    c:identifier="DMAP_CONTROL_SHARE"
                    introspectable="0">
      <doc xml:space="preserve"
           filename="dmap-control-share.h"
           line="47">Casts a #DmapControlShare or derived pointer into a (DmapControlShare*) pointer.
Depending on the current debugging level, this function may invoke
certain runtime checks to identify invalid casts.</doc>
      <source-position filename="dmap-control-share.h" line="55"/>
      <parameters>
        <parameter name="o">
          <doc xml:space="preserve"
               filename="dmap-control-share.h"
               line="49">Object which is subject to casting.</doc>
        </parameter>
      </parameters>
    </function-macro>
    <function-macro name="CONTROL_SHARE_CLASS"
                    c:identifier="DMAP_CONTROL_SHARE_CLASS"
                    introspectable="0">
      <doc xml:space="preserve"
           filename="dmap-control-share.h"
           line="57">Casts a derived #DmapControlShareClass structure into a #DmapControlShareClass structure.</doc>
      <source-position filename="dmap-control-share.h" line="63"/>
      <parameters>
        <parameter name="k">
          <doc xml:space="preserve"
               filename="dmap-control-share.h"
               line="59">a valid #DmapControlShareClass</doc>
        </parameter>
      </parameters>
    </function-macro>
    <function-macro name="CONTROL_SHARE_GET_CLASS"
                    c:identifier="DMAP_CONTROL_SHARE_GET_CLASS"
                    introspectable="0">
      <doc xml:space="preserve"
           filename="dmap-control-share.h"
           line="82">Get the class structure associated to a #DmapControlShare instance.</doc>
      <source-position filename="dmap-control-share.h" line="90"/>
      <parameters>
        <parameter name="o">
          <doc xml:space="preserve"
               filename="dmap-control-share.h"
               line="84">a #DmapControlShare instance.</doc>
        </parameter>
      </parameters>
    </function-macro>
    <class name="Connection"
           c:symbol-prefix="connection"
           c:type="DmapConnection"
           parent="GObject.Object"
           glib:type-name="DmapConnection"
           glib:get-type="dmap_connection_get_type"
           glib:type-struct="ConnectionClass">
      <source-position filename="dmap-connection.h" line="154"/>
      <virtual-method name="authenticate">
        <source-position filename="dmap-connection.h" line="148"/>
        <return-value transfer-ownership="full">
          <type name="utf8" c:type="char*"/>
        </return-value>
        <parameters>
          <instance-parameter name="connection" transfer-ownership="none">
            <type name="Connection" c:type="DmapConnection*"/>
          </instance-parameter>
          <parameter name="name" transfer-ownership="none">
            <type name="utf8" c:type="const char*"/>
          </parameter>
        </parameters>
      </virtual-method>
      <virtual-method name="build_message" introspectable="0">
        <source-position filename="dmap-connection.h" line="139"/>
        <return-value>
          <type name="Soup.Message" c:type="SoupMessage*"/>
        </return-value>
        <parameters>
          <instance-parameter name="connection" transfer-ownership="none">
            <type name="Connection" c:type="DmapConnection*"/>
          </instance-parameter>
          <parameter name="path" transfer-ownership="none">
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
          <parameter name="need_hash" transfer-ownership="none">
            <type name="gboolean" c:type="gboolean"/>
          </parameter>
          <parameter name="version" transfer-ownership="none">
            <type name="gdouble" c:type="gdouble"/>
          </parameter>
          <parameter name="req_id" transfer-ownership="none">
            <type name="gint" c:type="gint"/>
          </parameter>
          <parameter name="send_close" transfer-ownership="none">
            <type name="gboolean" c:type="gboolean"/>
          </parameter>
        </parameters>
      </virtual-method>
      <virtual-method name="connected">
        <source-position filename="dmap-connection.h" line="145"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="connection" transfer-ownership="none">
            <type name="Connection" c:type="DmapConnection*"/>
          </instance-parameter>
        </parameters>
      </virtual-method>
      <virtual-method name="connecting">
        <source-position filename="dmap-connection.h" line="149"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="connection" transfer-ownership="none">
            <type name="Connection" c:type="DmapConnection*"/>
          </instance-parameter>
          <parameter name="state" transfer-ownership="none">
            <type name="ConnectionState" c:type="DmapConnectionState"/>
          </parameter>
          <parameter name="progress" transfer-ownership="none">
            <type name="gfloat" c:type="float"/>
          </parameter>
        </parameters>
      </virtual-method>
      <virtual-method name="disconnected">
        <source-position filename="dmap-connection.h" line="146"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="connection" transfer-ownership="none">
            <type name="Connection" c:type="DmapConnection*"/>
          </instance-parameter>
        </parameters>
      </virtual-method>
      <virtual-method name="get_protocol_version_cc">
        <source-position filename="dmap-connection.h" line="132"/>
        <return-value transfer-ownership="none">
          <type name="ContentCode" c:type="DmapContentCode"/>
        </return-value>
        <parameters>
          <instance-parameter name="connection" transfer-ownership="none">
            <type name="Connection" c:type="DmapConnection*"/>
          </instance-parameter>
        </parameters>
      </virtual-method>
      <virtual-method name="get_query_metadata">
        <source-position filename="dmap-connection.h" line="134"/>
        <return-value transfer-ownership="full">
          <type name="utf8" c:type="gchar*"/>
        </return-value>
        <parameters>
          <instance-parameter name="connection" transfer-ownership="none">
            <type name="Connection" c:type="DmapConnection*"/>
          </instance-parameter>
        </parameters>
      </virtual-method>
      <virtual-method name="handle_mlcl" introspectable="0">
        <source-position filename="dmap-connection.h" line="135"/>
        <return-value>
          <type name="Record" c:type="DmapRecord*"/>
        </return-value>
        <parameters>
          <instance-parameter name="connection" transfer-ownership="none">
            <type name="Connection" c:type="DmapConnection*"/>
          </instance-parameter>
          <parameter name="factory" transfer-ownership="none">
            <type name="RecordFactory" c:type="DmapRecordFactory*"/>
          </parameter>
          <parameter name="mlcl" transfer-ownership="none">
            <type name="GLib.Node" c:type="GNode*"/>
          </parameter>
          <parameter name="item_id" transfer-ownership="none">
            <type name="gint" c:type="gint*"/>
          </parameter>
        </parameters>
      </virtual-method>
      <virtual-method name="operation_done">
        <source-position filename="dmap-connection.h" line="152"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="connection" transfer-ownership="none">
            <type name="Connection" c:type="DmapConnection*"/>
          </instance-parameter>
        </parameters>
      </virtual-method>
      <method name="authenticate_message"
              c:identifier="dmap_connection_authenticate_message">
        <doc xml:space="preserve"
             filename="dmap-connection.h"
             line="209">Attach an authentication credential to a request. This
method should be called by a function that is connected to the
#DmapConnection::authenticate signal. The signal will provide the
connection, session, message and auth to that function. That function
should obtain a password and provide it to this method.</doc>
        <source-position filename="dmap-connection.h" line="223"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="connection" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="dmap-connection.h"
                 line="211">A #DmapConnection</doc>
            <type name="Connection" c:type="DmapConnection*"/>
          </instance-parameter>
          <parameter name="session" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="dmap-connection.h"
                 line="212">A #SoupSession</doc>
            <type name="Soup.Session" c:type="SoupSession*"/>
          </parameter>
          <parameter name="message" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="dmap-connection.h"
                 line="213">A #SoupMessage</doc>
            <type name="Soup.Message" c:type="SoupMessage*"/>
          </parameter>
          <parameter name="auth" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="dmap-connection.h"
                 line="214">A #SoupAuth</doc>
            <type name="Soup.Auth" c:type="SoupAuth*"/>
          </parameter>
          <parameter name="password" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="dmap-connection.h"
                 line="215">A password</doc>
            <type name="utf8" c:type="const char*"/>
          </parameter>
        </parameters>
      </method>
      <method name="emit_error"
              c:identifier="dmap_connection_emit_error"
              introspectable="0">
        <source-position filename="dmap-connection.h" line="236"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="connection" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="dmap-connection.h"
                 line="231">a #DmapConnection instance.</doc>
            <type name="Connection" c:type="DmapConnection*"/>
          </instance-parameter>
          <parameter name="code" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="dmap-connection.h"
                 line="232">error code.</doc>
            <type name="gint" c:type="gint"/>
          </parameter>
          <parameter name="format" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="dmap-connection.h"
                 line="233">printf()-style format for error message</doc>
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
          <parameter name="..." transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="dmap-connection.h"
                 line="234">parameters for message format</doc>
            <varargs/>
          </parameter>
        </parameters>
      </method>
      <method name="get_headers" c:identifier="dmap_connection_get_headers">
        <source-position filename="dmap-connection.h" line="196"/>
        <return-value transfer-ownership="full">
          <type name="Soup.MessageHeaders" c:type="SoupMessageHeaders*"/>
        </return-value>
        <parameters>
          <instance-parameter name="connection" transfer-ownership="none">
            <type name="Connection" c:type="DmapConnection*"/>
          </instance-parameter>
          <parameter name="uri" transfer-ownership="none">
            <type name="utf8" c:type="const char*"/>
          </parameter>
        </parameters>
      </method>
      <method name="get_playlists"
              c:identifier="dmap_connection_get_playlists">
        <doc xml:space="preserve"
             filename="dmap-connection.h"
             line="199">Get the playlists associated with a #DmapConnection instance.</doc>
        <source-position filename="dmap-connection.h" line="207"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="dmap-connection.h"
               line="205">pointer to a list of playlists.</doc>
          <type name="GLib.SList" c:type="GSList*">
            <type name="Playlist"/>
          </type>
        </return-value>
        <parameters>
          <instance-parameter name="connection" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="dmap-connection.h"
                 line="201">A #DmapConnection</doc>
            <type name="Connection" c:type="DmapConnection*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="is_connected" c:identifier="dmap_connection_is_connected">
        <doc xml:space="preserve"
             filename="dmap-connection.h"
             line="164">Returns TRUE if the connection is presently connected.</doc>
        <source-position filename="dmap-connection.h" line="170"/>
        <return-value transfer-ownership="none">
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <instance-parameter name="connection" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="dmap-connection.h"
                 line="166">The connection.</doc>
            <type name="Connection" c:type="DmapConnection*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="start" c:identifier="dmap_connection_start">
        <doc xml:space="preserve"
             filename="dmap-connection.h"
             line="172">Connect to the remote DMAP share.</doc>
        <source-position filename="dmap-connection.h" line="180"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="connection" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="dmap-connection.h"
                 line="174">The connection.</doc>
            <type name="Connection" c:type="DmapConnection*"/>
          </instance-parameter>
          <parameter name="callback"
                     transfer-ownership="none"
                     scope="async"
                     closure="1">
            <doc xml:space="preserve"
                 filename="dmap-connection.h"
                 line="175">The function to call once the connection is complete.</doc>
            <type name="ConnectionFunc" c:type="DmapConnectionFunc"/>
          </parameter>
          <parameter name="user_data"
                     transfer-ownership="none"
                     nullable="1"
                     allow-none="1">
            <doc xml:space="preserve"
                 filename="dmap-connection.h"
                 line="176">The data to pass to the callback.</doc>
            <type name="gpointer" c:type="gpointer"/>
          </parameter>
        </parameters>
      </method>
      <method name="stop" c:identifier="dmap_connection_stop">
        <doc xml:space="preserve"
             filename="dmap-connection.h"
             line="184">Disconnect from the remote DMAP share.</doc>
        <source-position filename="dmap-connection.h" line="192"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="connection" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="dmap-connection.h"
                 line="186">The connection.</doc>
            <type name="Connection" c:type="DmapConnection*"/>
          </instance-parameter>
          <parameter name="callback"
                     transfer-ownership="none"
                     scope="async"
                     closure="1">
            <doc xml:space="preserve"
                 filename="dmap-connection.h"
                 line="187">The function to call once the connection is complete.</doc>
            <type name="ConnectionFunc" c:type="DmapConnectionFunc"/>
          </parameter>
          <parameter name="user_data"
                     transfer-ownership="none"
                     nullable="1"
                     allow-none="1">
            <doc xml:space="preserve"
                 filename="dmap-connection.h"
                 line="188">The data to pass to the callback.</doc>
            <type name="gpointer" c:type="gpointer"/>
          </parameter>
        </parameters>
      </method>
      <property name="base-uri" writable="1" transfer-ownership="none">
        <type name="GLib.Uri"/>
      </property>
      <property name="database-id"
                writable="1"
                transfer-ownership="none"
                default-value="0">
        <type name="gint" c:type="gint"/>
      </property>
      <property name="db"
                writable="1"
                construct-only="1"
                transfer-ownership="none">
        <type name="Db"/>
      </property>
      <property name="dmap-version"
                writable="1"
                transfer-ownership="none"
                default-value="0.000000">
        <type name="gdouble" c:type="gdouble"/>
      </property>
      <property name="factory"
                writable="1"
                construct-only="1"
                transfer-ownership="none">
        <type name="RecordFactory"/>
      </property>
      <property name="host"
                writable="1"
                construct-only="1"
                transfer-ownership="none"
                default-value="NULL">
        <type name="utf8" c:type="gchar*"/>
      </property>
      <property name="name"
                writable="1"
                construct-only="1"
                transfer-ownership="none"
                default-value="NULL">
        <type name="utf8" c:type="gchar*"/>
      </property>
      <property name="password"
                readable="0"
                writable="1"
                transfer-ownership="none"
                default-value="NULL">
        <type name="utf8" c:type="gchar*"/>
      </property>
      <property name="port"
                writable="1"
                construct-only="1"
                transfer-ownership="none"
                default-value="0">
        <type name="guint" c:type="guint"/>
      </property>
      <property name="revision-number"
                writable="1"
                transfer-ownership="none"
                default-value="0">
        <type name="gint" c:type="gint"/>
      </property>
      <property name="session-id"
                writable="1"
                transfer-ownership="none"
                default-value="0">
        <type name="gint" c:type="gint"/>
      </property>
      <property name="username"
                writable="1"
                construct-only="1"
                transfer-ownership="none"
                default-value="libdmapsharing">
        <type name="utf8" c:type="gchar*"/>
      </property>
      <field name="parent">
        <type name="GObject.Object" c:type="GObject"/>
      </field>
      <field name="priv">
        <type name="ConnectionPrivate" c:type="DmapConnectionPrivate*"/>
      </field>
      <glib:signal name="authenticate" when="last">
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <parameter name="object" transfer-ownership="none">
            <type name="utf8" c:type="gchar*"/>
          </parameter>
          <parameter name="p0" transfer-ownership="none">
            <type name="Soup.Session"/>
          </parameter>
          <parameter name="p1" transfer-ownership="none">
            <type name="Soup.Message"/>
          </parameter>
          <parameter name="p2" transfer-ownership="none">
            <type name="Soup.Auth"/>
          </parameter>
          <parameter name="p3" transfer-ownership="none">
            <type name="gboolean" c:type="gboolean"/>
          </parameter>
        </parameters>
      </glib:signal>
      <glib:signal name="connected" when="last">
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
      </glib:signal>
      <glib:signal name="connecting" when="last">
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <parameter name="object" transfer-ownership="none">
            <type name="gulong" c:type="gulong"/>
          </parameter>
          <parameter name="p0" transfer-ownership="none">
            <type name="gfloat" c:type="gfloat"/>
          </parameter>
        </parameters>
      </glib:signal>
      <glib:signal name="disconnected" when="last">
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
      </glib:signal>
      <glib:signal name="error" when="first">
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <parameter name="object"
                     transfer-ownership="none"
                     nullable="1"
                     allow-none="1">
            <type name="gpointer" c:type="gpointer"/>
          </parameter>
        </parameters>
      </glib:signal>
      <glib:signal name="operation-done" when="first">
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
      </glib:signal>
    </class>
    <record name="ConnectionClass"
            c:type="DmapConnectionClass"
            glib:is-gtype-struct-for="Connection">
      <source-position filename="dmap-connection.h" line="154"/>
      <field name="parent">
        <type name="GObject.ObjectClass" c:type="GObjectClass"/>
      </field>
      <field name="get_protocol_version_cc">
        <callback name="get_protocol_version_cc">
          <source-position filename="dmap-connection.h" line="132"/>
          <return-value transfer-ownership="none">
            <type name="ContentCode" c:type="DmapContentCode"/>
          </return-value>
          <parameters>
            <parameter name="connection" transfer-ownership="none">
              <type name="Connection" c:type="DmapConnection*"/>
            </parameter>
          </parameters>
        </callback>
      </field>
      <field name="get_query_metadata">
        <callback name="get_query_metadata">
          <source-position filename="dmap-connection.h" line="134"/>
          <return-value transfer-ownership="full">
            <type name="utf8" c:type="gchar*"/>
          </return-value>
          <parameters>
            <parameter name="connection" transfer-ownership="none">
              <type name="Connection" c:type="DmapConnection*"/>
            </parameter>
          </parameters>
        </callback>
      </field>
      <field name="handle_mlcl" introspectable="0">
        <callback name="handle_mlcl" introspectable="0">
          <source-position filename="dmap-connection.h" line="135"/>
          <return-value>
            <type name="Record" c:type="DmapRecord*"/>
          </return-value>
          <parameters>
            <parameter name="connection" transfer-ownership="none">
              <type name="Connection" c:type="DmapConnection*"/>
            </parameter>
            <parameter name="factory" transfer-ownership="none">
              <type name="RecordFactory" c:type="DmapRecordFactory*"/>
            </parameter>
            <parameter name="mlcl" transfer-ownership="none">
              <type name="GLib.Node" c:type="GNode*"/>
            </parameter>
            <parameter name="item_id" transfer-ownership="none">
              <type name="gint" c:type="gint*"/>
            </parameter>
          </parameters>
        </callback>
      </field>
      <field name="build_message" introspectable="0">
        <callback name="build_message" introspectable="0">
          <source-position filename="dmap-connection.h" line="139"/>
          <return-value>
            <type name="Soup.Message" c:type="SoupMessage*"/>
          </return-value>
          <parameters>
            <parameter name="connection" transfer-ownership="none">
              <type name="Connection" c:type="DmapConnection*"/>
            </parameter>
            <parameter name="path" transfer-ownership="none">
              <type name="utf8" c:type="const gchar*"/>
            </parameter>
            <parameter name="need_hash" transfer-ownership="none">
              <type name="gboolean" c:type="gboolean"/>
            </parameter>
            <parameter name="version" transfer-ownership="none">
              <type name="gdouble" c:type="gdouble"/>
            </parameter>
            <parameter name="req_id" transfer-ownership="none">
              <type name="gint" c:type="gint"/>
            </parameter>
            <parameter name="send_close" transfer-ownership="none">
              <type name="gboolean" c:type="gboolean"/>
            </parameter>
          </parameters>
        </callback>
      </field>
      <field name="connected">
        <callback name="connected">
          <source-position filename="dmap-connection.h" line="145"/>
          <return-value transfer-ownership="none">
            <type name="none" c:type="void"/>
          </return-value>
          <parameters>
            <parameter name="connection" transfer-ownership="none">
              <type name="Connection" c:type="DmapConnection*"/>
            </parameter>
          </parameters>
        </callback>
      </field>
      <field name="disconnected">
        <callback name="disconnected">
          <source-position filename="dmap-connection.h" line="146"/>
          <return-value transfer-ownership="none">
            <type name="none" c:type="void"/>
          </return-value>
          <parameters>
            <parameter name="connection" transfer-ownership="none">
              <type name="Connection" c:type="DmapConnection*"/>
            </parameter>
          </parameters>
        </callback>
      </field>
      <field name="authenticate">
        <callback name="authenticate">
          <source-position filename="dmap-connection.h" line="148"/>
          <return-value transfer-ownership="full">
            <type name="utf8" c:type="char*"/>
          </return-value>
          <parameters>
            <parameter name="connection" transfer-ownership="none">
              <type name="Connection" c:type="DmapConnection*"/>
            </parameter>
            <parameter name="name" transfer-ownership="none">
              <type name="utf8" c:type="const char*"/>
            </parameter>
          </parameters>
        </callback>
      </field>
      <field name="connecting">
        <callback name="connecting">
          <source-position filename="dmap-connection.h" line="149"/>
          <return-value transfer-ownership="none">
            <type name="none" c:type="void"/>
          </return-value>
          <parameters>
            <parameter name="connection" transfer-ownership="none">
              <type name="Connection" c:type="DmapConnection*"/>
            </parameter>
            <parameter name="state" transfer-ownership="none">
              <type name="ConnectionState" c:type="DmapConnectionState"/>
            </parameter>
            <parameter name="progress" transfer-ownership="none">
              <type name="gfloat" c:type="float"/>
            </parameter>
          </parameters>
        </callback>
      </field>
      <field name="operation_done">
        <callback name="operation_done">
          <source-position filename="dmap-connection.h" line="152"/>
          <return-value transfer-ownership="none">
            <type name="none" c:type="void"/>
          </return-value>
          <parameters>
            <parameter name="connection" transfer-ownership="none">
              <type name="Connection" c:type="DmapConnection*"/>
            </parameter>
          </parameters>
        </callback>
      </field>
    </record>
    <callback name="ConnectionFunc" c:type="DmapConnectionFunc">
      <source-position filename="dmap-connection.h" line="157"/>
      <return-value transfer-ownership="none">
        <type name="none" c:type="void"/>
      </return-value>
      <parameters>
        <parameter name="connection" transfer-ownership="none">
          <type name="Connection" c:type="DmapConnection*"/>
        </parameter>
        <parameter name="result" transfer-ownership="none">
          <type name="gboolean" c:type="gboolean"/>
        </parameter>
        <parameter name="reason" transfer-ownership="none">
          <type name="utf8" c:type="const char*"/>
        </parameter>
        <parameter name="user_data"
                   transfer-ownership="none"
                   nullable="1"
                   allow-none="1"
                   closure="3">
          <type name="gpointer" c:type="gpointer"/>
        </parameter>
      </parameters>
    </callback>
    <record name="ConnectionPrivate"
            c:type="DmapConnectionPrivate"
            disguised="1"
            opaque="1">
      <source-position filename="dmap-connection.h" line="95"/>
    </record>
    <enumeration name="ConnectionState"
                 glib:type-name="DmapConnectionState"
                 glib:get-type="dmap_connection_state_get_type"
                 c:type="DmapConnectionState">
      <doc xml:space="preserve"
           filename="dmap-connection.h"
           line="97">Enumeration of connection states.</doc>
      <member name="get_info"
              value="0"
              c:identifier="DMAP_GET_INFO"
              glib:nick="get-info"
              glib:name="DMAP_GET_INFO">
        <doc xml:space="preserve"
             filename="dmap-connection.h"
             line="99">getting DMAP server information</doc>
      </member>
      <member name="login"
              value="1"
              c:identifier="DMAP_LOGIN"
              glib:nick="login"
              glib:name="DMAP_LOGIN">
        <doc xml:space="preserve"
             filename="dmap-connection.h"
             line="100">logging in to DMAP server</doc>
      </member>
      <member name="get_revision_number"
              value="2"
              c:identifier="DMAP_GET_REVISION_NUMBER"
              glib:nick="get-revision-number"
              glib:name="DMAP_GET_REVISION_NUMBER">
        <doc xml:space="preserve"
             filename="dmap-connection.h"
             line="101">getting server's database revision number</doc>
      </member>
      <member name="get_db_info"
              value="3"
              c:identifier="DMAP_GET_DB_INFO"
              glib:nick="get-db-info"
              glib:name="DMAP_GET_DB_INFO">
        <doc xml:space="preserve"
             filename="dmap-connection.h"
             line="102">getting DMAP database information</doc>
      </member>
      <member name="get_media"
              value="4"
              c:identifier="DMAP_GET_MEDIA"
              glib:nick="get-media"
              glib:name="DMAP_GET_MEDIA">
        <doc xml:space="preserve"
             filename="dmap-connection.h"
             line="103">getting DMAP media listing</doc>
      </member>
      <member name="get_playlists"
              value="5"
              c:identifier="DMAP_GET_PLAYLISTS"
              glib:nick="get-playlists"
              glib:name="DMAP_GET_PLAYLISTS">
        <doc xml:space="preserve"
             filename="dmap-connection.h"
             line="104">getting DMAP playlists</doc>
      </member>
      <member name="get_playlist_entries"
              value="6"
              c:identifier="DMAP_GET_PLAYLIST_ENTRIES"
              glib:nick="get-playlist-entries"
              glib:name="DMAP_GET_PLAYLIST_ENTRIES">
        <doc xml:space="preserve"
             filename="dmap-connection.h"
             line="105">getting entries in playlist</doc>
      </member>
      <member name="logout"
              value="7"
              c:identifier="DMAP_LOGOUT"
              glib:nick="logout"
              glib:name="DMAP_LOGOUT">
        <doc xml:space="preserve"
             filename="dmap-connection.h"
             line="106">logging out of DMAP server</doc>
      </member>
      <member name="done"
              value="8"
              c:identifier="DMAP_DONE"
              glib:nick="done"
              glib:name="DMAP_DONE">
        <doc xml:space="preserve"
             filename="dmap-connection.h"
             line="107">done</doc>
      </member>
    </enumeration>
    <interface name="ContainerDb"
               c:symbol-prefix="container_db"
               c:type="DmapContainerDb"
               glib:type-name="DmapContainerDb"
               glib:get-type="dmap_container_db_get_type"
               glib:type-struct="ContainerDbInterface">
      <source-position filename="dmap-container-db.h" line="97"/>
      <virtual-method name="add" invoker="add" throws="1">
        <doc xml:space="preserve"
             filename="dmap-container-db.h"
             line="101">Add a record to the database.</doc>
        <source-position filename="dmap-container-db.h" line="90"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="db" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="dmap-container-db.h"
                 line="103">A container database.</doc>
            <type name="ContainerDb" c:type="DmapContainerDb*"/>
          </instance-parameter>
          <parameter name="record" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="dmap-container-db.h"
                 line="104">A record.</doc>
            <type name="ContainerRecord" c:type="DmapContainerRecord*"/>
          </parameter>
        </parameters>
      </virtual-method>
      <virtual-method name="count">
        <source-position filename="dmap-container-db.h" line="96"/>
        <return-value transfer-ownership="none">
          <type name="gint64" c:type="gint64"/>
        </return-value>
        <parameters>
          <instance-parameter name="db" transfer-ownership="none">
            <type name="ContainerDb" c:type="DmapContainerDb*"/>
          </instance-parameter>
        </parameters>
      </virtual-method>
      <virtual-method name="foreach" invoker="foreach">
        <doc xml:space="preserve"
             filename="dmap-container-db.h"
             line="124">Apply a function to each record in a container database.</doc>
        <source-position filename="dmap-container-db.h" line="94"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="db" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="dmap-container-db.h"
                 line="126">A container database.</doc>
            <type name="ContainerDb" c:type="DmapContainerDb*"/>
          </instance-parameter>
          <parameter name="func"
                     transfer-ownership="none"
                     scope="call"
                     closure="1">
            <doc xml:space="preserve"
                 filename="dmap-container-db.h"
                 line="127">The function to apply to each record in the database.</doc>
            <type name="IdContainerRecordFunc"
                  c:type="DmapIdContainerRecordFunc"/>
          </parameter>
          <parameter name="data"
                     transfer-ownership="none"
                     nullable="1"
                     allow-none="1">
            <doc xml:space="preserve"
                 filename="dmap-container-db.h"
                 line="128">User data to pass to the function.</doc>
            <type name="gpointer" c:type="gpointer"/>
          </parameter>
        </parameters>
      </virtual-method>
      <virtual-method name="lookup_by_id" invoker="lookup_by_id">
        <source-position filename="dmap-container-db.h" line="92"/>
        <return-value transfer-ownership="full">
          <doc xml:space="preserve"
               filename="dmap-container-db.h"
               line="118">the database record corresponding to @id. This record should
be unrefed when no longer required.</doc>
          <type name="ContainerRecord" c:type="DmapContainerRecord*"/>
        </return-value>
        <parameters>
          <instance-parameter name="db" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="dmap-container-db.h"
                 line="115">A container database.</doc>
            <type name="ContainerDb" c:type="DmapContainerDb*"/>
          </instance-parameter>
          <parameter name="id" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="dmap-container-db.h"
                 line="116">A record ID.</doc>
            <type name="guint" c:type="guint"/>
          </parameter>
        </parameters>
      </virtual-method>
      <method name="add" c:identifier="dmap_container_db_add" throws="1">
        <doc xml:space="preserve"
             filename="dmap-container-db.h"
             line="101">Add a record to the database.</doc>
        <source-position filename="dmap-container-db.h" line="109"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="db" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="dmap-container-db.h"
                 line="103">A container database.</doc>
            <type name="ContainerDb" c:type="DmapContainerDb*"/>
          </instance-parameter>
          <parameter name="record" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="dmap-container-db.h"
                 line="104">A record.</doc>
            <type name="ContainerRecord" c:type="DmapContainerRecord*"/>
          </parameter>
        </parameters>
      </method>
      <method name="count" c:identifier="dmap_container_db_count">
        <source-position filename="dmap-container-db.h" line="141"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="dmap-container-db.h"
               line="139">the number of records in the database.</doc>
          <type name="gulong" c:type="gulong"/>
        </return-value>
        <parameters>
          <instance-parameter name="db" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="dmap-container-db.h"
                 line="137">A container database.</doc>
            <type name="ContainerDb" c:type="DmapContainerDb*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="foreach" c:identifier="dmap_container_db_foreach">
        <doc xml:space="preserve"
             filename="dmap-container-db.h"
             line="124">Apply a function to each record in a container database.</doc>
        <source-position filename="dmap-container-db.h" line="132"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="db" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="dmap-container-db.h"
                 line="126">A container database.</doc>
            <type name="ContainerDb" c:type="DmapContainerDb*"/>
          </instance-parameter>
          <parameter name="func"
                     transfer-ownership="none"
                     scope="call"
                     closure="1">
            <doc xml:space="preserve"
                 filename="dmap-container-db.h"
                 line="127">The function to apply to each record in the database.</doc>
            <type name="IdContainerRecordFunc"
                  c:type="DmapIdContainerRecordFunc"/>
          </parameter>
          <parameter name="data"
                     transfer-ownership="none"
                     nullable="1"
                     allow-none="1">
            <doc xml:space="preserve"
                 filename="dmap-container-db.h"
                 line="128">User data to pass to the function.</doc>
            <type name="gpointer" c:type="gpointer"/>
          </parameter>
        </parameters>
      </method>
      <method name="lookup_by_id"
              c:identifier="dmap_container_db_lookup_by_id">
        <source-position filename="dmap-container-db.h" line="121"/>
        <return-value transfer-ownership="full">
          <doc xml:space="preserve"
               filename="dmap-container-db.h"
               line="118">the database record corresponding to @id. This record should
be unrefed when no longer required.</doc>
          <type name="ContainerRecord" c:type="DmapContainerRecord*"/>
        </return-value>
        <parameters>
          <instance-parameter name="db" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="dmap-container-db.h"
                 line="115">A container database.</doc>
            <type name="ContainerDb" c:type="DmapContainerDb*"/>
          </instance-parameter>
          <parameter name="id" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="dmap-container-db.h"
                 line="116">A record ID.</doc>
            <type name="guint" c:type="guint"/>
          </parameter>
        </parameters>
      </method>
    </interface>
    <record name="ContainerDbInterface"
            c:type="DmapContainerDbInterface"
            glib:is-gtype-struct-for="ContainerDb">
      <source-position filename="dmap-container-db.h" line="97"/>
      <field name="parent">
        <type name="GObject.TypeInterface" c:type="GTypeInterface"/>
      </field>
      <field name="add">
        <callback name="add" throws="1">
          <source-position filename="dmap-container-db.h" line="90"/>
          <return-value transfer-ownership="none">
            <type name="none" c:type="void"/>
          </return-value>
          <parameters>
            <parameter name="db" transfer-ownership="none">
              <doc xml:space="preserve"
                   filename="dmap-container-db.h"
                   line="103">A container database.</doc>
              <type name="ContainerDb" c:type="DmapContainerDb*"/>
            </parameter>
            <parameter name="record" transfer-ownership="none">
              <doc xml:space="preserve"
                   filename="dmap-container-db.h"
                   line="104">A record.</doc>
              <type name="ContainerRecord" c:type="DmapContainerRecord*"/>
            </parameter>
          </parameters>
        </callback>
      </field>
      <field name="lookup_by_id">
        <callback name="lookup_by_id">
          <source-position filename="dmap-container-db.h" line="92"/>
          <return-value transfer-ownership="full">
            <doc xml:space="preserve"
                 filename="dmap-container-db.h"
                 line="118">the database record corresponding to @id. This record should
be unrefed when no longer required.</doc>
            <type name="ContainerRecord" c:type="DmapContainerRecord*"/>
          </return-value>
          <parameters>
            <parameter name="db" transfer-ownership="none">
              <doc xml:space="preserve"
                   filename="dmap-container-db.h"
                   line="115">A container database.</doc>
              <type name="ContainerDb" c:type="DmapContainerDb*"/>
            </parameter>
            <parameter name="id" transfer-ownership="none">
              <doc xml:space="preserve"
                   filename="dmap-container-db.h"
                   line="116">A record ID.</doc>
              <type name="guint" c:type="guint"/>
            </parameter>
          </parameters>
        </callback>
      </field>
      <field name="foreach">
        <callback name="foreach">
          <source-position filename="dmap-container-db.h" line="94"/>
          <return-value transfer-ownership="none">
            <type name="none" c:type="void"/>
          </return-value>
          <parameters>
            <parameter name="db" transfer-ownership="none">
              <doc xml:space="preserve"
                   filename="dmap-container-db.h"
                   line="126">A container database.</doc>
              <type name="ContainerDb" c:type="DmapContainerDb*"/>
            </parameter>
            <parameter name="func"
                       transfer-ownership="none"
                       scope="call"
                       closure="2">
              <doc xml:space="preserve"
                   filename="dmap-container-db.h"
                   line="127">The function to apply to each record in the database.</doc>
              <type name="IdContainerRecordFunc"
                    c:type="DmapIdContainerRecordFunc"/>
            </parameter>
            <parameter name="data"
                       transfer-ownership="none"
                       nullable="1"
                       allow-none="1">
              <doc xml:space="preserve"
                   filename="dmap-container-db.h"
                   line="128">User data to pass to the function.</doc>
              <type name="gpointer" c:type="gpointer"/>
            </parameter>
          </parameters>
        </callback>
      </field>
      <field name="count">
        <callback name="count">
          <source-position filename="dmap-container-db.h" line="96"/>
          <return-value transfer-ownership="none">
            <type name="gint64" c:type="gint64"/>
          </return-value>
          <parameters>
            <parameter name="db" transfer-ownership="none">
              <type name="ContainerDb" c:type="DmapContainerDb*"/>
            </parameter>
          </parameters>
        </callback>
      </field>
    </record>
    <interface name="ContainerRecord"
               c:symbol-prefix="container_record"
               c:type="DmapContainerRecord"
               glib:type-name="DmapContainerRecord"
               glib:get-type="dmap_container_record_get_type"
               glib:type-struct="ContainerRecordInterface">
      <source-position filename="dmap-container-record.h" line="85"/>
      <virtual-method name="add_entry" invoker="add_entry" throws="1">
        <doc xml:space="preserve"
             filename="dmap-container-record.h"
             line="97">Add a record to the database. It is assumed that the record is placed
directly into the database (not copied) and not freed.</doc>
        <source-position filename="dmap-container-record.h" line="79"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="container_record"
                              transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="dmap-container-record.h"
                 line="99">A DmapContainerRecord.</doc>
            <type name="ContainerRecord" c:type="DmapContainerRecord*"/>
          </instance-parameter>
          <parameter name="record" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="dmap-container-record.h"
                 line="100">A DmapRecord.</doc>
            <type name="Record" c:type="DmapRecord*"/>
          </parameter>
          <parameter name="id" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="dmap-container-record.h"
                 line="101">The record's ID.</doc>
            <type name="gint" c:type="gint"/>
          </parameter>
        </parameters>
      </virtual-method>
      <virtual-method name="get_entries" invoker="get_entries">
        <source-position filename="dmap-container-record.h" line="84"/>
        <return-value transfer-ownership="full">
          <doc xml:space="preserve"
               filename="dmap-container-record.h"
               line="122">A pointer to a DmapDb containing the entries contained in record.</doc>
          <type name="Db" c:type="DmapDb*"/>
        </return-value>
        <parameters>
          <instance-parameter name="record" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="dmap-container-record.h"
                 line="120">A DmapContainerRecord.</doc>
            <type name="ContainerRecord" c:type="DmapContainerRecord*"/>
          </instance-parameter>
        </parameters>
      </virtual-method>
      <virtual-method name="get_entry_count" invoker="get_entry_count">
        <source-position filename="dmap-container-record.h" line="82"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="dmap-container-record.h"
               line="114">the number of records in the container record.</doc>
          <type name="guint64" c:type="guint64"/>
        </return-value>
        <parameters>
          <instance-parameter name="record" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="dmap-container-record.h"
                 line="112">A DmapContainerRecord.</doc>
            <type name="ContainerRecord" c:type="DmapContainerRecord*"/>
          </instance-parameter>
        </parameters>
      </virtual-method>
      <virtual-method name="get_id" invoker="get_id">
        <source-position filename="dmap-container-record.h" line="77"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="dmap-container-record.h"
               line="93">the ID for the given record.</doc>
          <type name="guint" c:type="guint"/>
        </return-value>
        <parameters>
          <instance-parameter name="record" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="dmap-container-record.h"
                 line="91">A DmapContainerRecord.</doc>
            <type name="ContainerRecord" c:type="DmapContainerRecord*"/>
          </instance-parameter>
        </parameters>
      </virtual-method>
      <method name="add_entry"
              c:identifier="dmap_container_record_add_entry"
              throws="1">
        <doc xml:space="preserve"
             filename="dmap-container-record.h"
             line="97">Add a record to the database. It is assumed that the record is placed
directly into the database (not copied) and not freed.</doc>
        <source-position filename="dmap-container-record.h" line="107"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="container_record"
                              transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="dmap-container-record.h"
                 line="99">A DmapContainerRecord.</doc>
            <type name="ContainerRecord" c:type="DmapContainerRecord*"/>
          </instance-parameter>
          <parameter name="record" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="dmap-container-record.h"
                 line="100">A DmapRecord.</doc>
            <type name="Record" c:type="DmapRecord*"/>
          </parameter>
          <parameter name="id" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="dmap-container-record.h"
                 line="101">The record's ID.</doc>
            <type name="gint" c:type="gint"/>
          </parameter>
        </parameters>
      </method>
      <method name="get_entries"
              c:identifier="dmap_container_record_get_entries">
        <source-position filename="dmap-container-record.h" line="124"/>
        <return-value transfer-ownership="full">
          <doc xml:space="preserve"
               filename="dmap-container-record.h"
               line="122">A pointer to a DmapDb containing the entries contained in record.</doc>
          <type name="Db" c:type="DmapDb*"/>
        </return-value>
        <parameters>
          <instance-parameter name="record" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="dmap-container-record.h"
                 line="120">A DmapContainerRecord.</doc>
            <type name="ContainerRecord" c:type="DmapContainerRecord*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_entry_count"
              c:identifier="dmap_container_record_get_entry_count">
        <source-position filename="dmap-container-record.h" line="116"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="dmap-container-record.h"
               line="114">the number of records in the container record.</doc>
          <type name="guint64" c:type="guint64"/>
        </return-value>
        <parameters>
          <instance-parameter name="record" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="dmap-container-record.h"
                 line="112">A DmapContainerRecord.</doc>
            <type name="ContainerRecord" c:type="DmapContainerRecord*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_id" c:identifier="dmap_container_record_get_id">
        <source-position filename="dmap-container-record.h" line="95"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="dmap-container-record.h"
               line="93">the ID for the given record.</doc>
          <type name="guint" c:type="guint"/>
        </return-value>
        <parameters>
          <instance-parameter name="record" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="dmap-container-record.h"
                 line="91">A DmapContainerRecord.</doc>
            <type name="ContainerRecord" c:type="DmapContainerRecord*"/>
          </instance-parameter>
        </parameters>
      </method>
      <property name="name"
                writable="1"
                transfer-ownership="none"
                default-value="NULL">
        <type name="utf8" c:type="gchar*"/>
      </property>
    </interface>
    <record name="ContainerRecordInterface"
            c:type="DmapContainerRecordInterface"
            glib:is-gtype-struct-for="ContainerRecord">
      <source-position filename="dmap-container-record.h" line="85"/>
      <field name="parent">
        <type name="GObject.TypeInterface" c:type="GTypeInterface"/>
      </field>
      <field name="get_id">
        <callback name="get_id">
          <source-position filename="dmap-container-record.h" line="77"/>
          <return-value transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="dmap-container-record.h"
                 line="93">the ID for the given record.</doc>
            <type name="guint" c:type="guint"/>
          </return-value>
          <parameters>
            <parameter name="record" transfer-ownership="none">
              <doc xml:space="preserve"
                   filename="dmap-container-record.h"
                   line="91">A DmapContainerRecord.</doc>
              <type name="ContainerRecord" c:type="DmapContainerRecord*"/>
            </parameter>
          </parameters>
        </callback>
      </field>
      <field name="add_entry">
        <callback name="add_entry" throws="1">
          <source-position filename="dmap-container-record.h" line="79"/>
          <return-value transfer-ownership="none">
            <type name="none" c:type="void"/>
          </return-value>
          <parameters>
            <parameter name="container_record" transfer-ownership="none">
              <doc xml:space="preserve"
                   filename="dmap-container-record.h"
                   line="99">A DmapContainerRecord.</doc>
              <type name="ContainerRecord" c:type="DmapContainerRecord*"/>
            </parameter>
            <parameter name="record" transfer-ownership="none">
              <doc xml:space="preserve"
                   filename="dmap-container-record.h"
                   line="100">A DmapRecord.</doc>
              <type name="Record" c:type="DmapRecord*"/>
            </parameter>
            <parameter name="id" transfer-ownership="none">
              <doc xml:space="preserve"
                   filename="dmap-container-record.h"
                   line="101">The record's ID.</doc>
              <type name="gint" c:type="gint"/>
            </parameter>
          </parameters>
        </callback>
      </field>
      <field name="get_entry_count">
        <callback name="get_entry_count">
          <source-position filename="dmap-container-record.h" line="82"/>
          <return-value transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="dmap-container-record.h"
                 line="114">the number of records in the container record.</doc>
            <type name="guint64" c:type="guint64"/>
          </return-value>
          <parameters>
            <parameter name="record" transfer-ownership="none">
              <doc xml:space="preserve"
                   filename="dmap-container-record.h"
                   line="112">A DmapContainerRecord.</doc>
              <type name="ContainerRecord" c:type="DmapContainerRecord*"/>
            </parameter>
          </parameters>
        </callback>
      </field>
      <field name="get_entries">
        <callback name="get_entries">
          <source-position filename="dmap-container-record.h" line="84"/>
          <return-value transfer-ownership="full">
            <doc xml:space="preserve"
                 filename="dmap-container-record.h"
                 line="122">A pointer to a DmapDb containing the entries contained in record.</doc>
            <type name="Db" c:type="DmapDb*"/>
          </return-value>
          <parameters>
            <parameter name="record" transfer-ownership="none">
              <doc xml:space="preserve"
                   filename="dmap-container-record.h"
                   line="120">A DmapContainerRecord.</doc>
              <type name="ContainerRecord" c:type="DmapContainerRecord*"/>
            </parameter>
          </parameters>
        </callback>
      </field>
    </record>
    <enumeration name="ContentCode"
                 glib:type-name="DmapContentCode"
                 glib:get-type="dmap_content_code_get_type"
                 c:type="DmapContentCode">
      <member name="cc_invalid"
              value="0"
              c:identifier="DMAP_CC_INVALID"
              glib:nick="cc-invalid"
              glib:name="DMAP_CC_INVALID">
      </member>
      <member name="raw"
              value="1"
              c:identifier="DMAP_RAW"
              glib:nick="raw"
              glib:name="DMAP_RAW">
      </member>
      <member name="cc_mdcl"
              value="2"
              c:identifier="DMAP_CC_MDCL"
              glib:nick="cc-mdcl"
              glib:name="DMAP_CC_MDCL">
      </member>
      <member name="cc_meds"
              value="3"
              c:identifier="DMAP_CC_MEDS"
              glib:nick="cc-meds"
              glib:name="DMAP_CC_MEDS">
      </member>
      <member name="cc_mstt"
              value="4"
              c:identifier="DMAP_CC_MSTT"
              glib:nick="cc-mstt"
              glib:name="DMAP_CC_MSTT">
      </member>
      <member name="cc_miid"
              value="5"
              c:identifier="DMAP_CC_MIID"
              glib:nick="cc-miid"
              glib:name="DMAP_CC_MIID">
      </member>
      <member name="cc_minm"
              value="6"
              c:identifier="DMAP_CC_MINM"
              glib:nick="cc-minm"
              glib:name="DMAP_CC_MINM">
      </member>
      <member name="cc_mikd"
              value="7"
              c:identifier="DMAP_CC_MIKD"
              glib:nick="cc-mikd"
              glib:name="DMAP_CC_MIKD">
      </member>
      <member name="cc_mper"
              value="8"
              c:identifier="DMAP_CC_MPER"
              glib:nick="cc-mper"
              glib:name="DMAP_CC_MPER">
      </member>
      <member name="cc_mcon"
              value="9"
              c:identifier="DMAP_CC_MCON"
              glib:nick="cc-mcon"
              glib:name="DMAP_CC_MCON">
      </member>
      <member name="cc_mcti"
              value="10"
              c:identifier="DMAP_CC_MCTI"
              glib:nick="cc-mcti"
              glib:name="DMAP_CC_MCTI">
      </member>
      <member name="cc_mpco"
              value="11"
              c:identifier="DMAP_CC_MPCO"
              glib:nick="cc-mpco"
              glib:name="DMAP_CC_MPCO">
      </member>
      <member name="cc_msts"
              value="12"
              c:identifier="DMAP_CC_MSTS"
              glib:nick="cc-msts"
              glib:name="DMAP_CC_MSTS">
      </member>
      <member name="cc_mimc"
              value="13"
              c:identifier="DMAP_CC_MIMC"
              glib:nick="cc-mimc"
              glib:name="DMAP_CC_MIMC">
      </member>
      <member name="cc_mctc"
              value="14"
              c:identifier="DMAP_CC_MCTC"
              glib:nick="cc-mctc"
              glib:name="DMAP_CC_MCTC">
      </member>
      <member name="cc_mrco"
              value="15"
              c:identifier="DMAP_CC_MRCO"
              glib:nick="cc-mrco"
              glib:name="DMAP_CC_MRCO">
      </member>
      <member name="cc_mtco"
              value="16"
              c:identifier="DMAP_CC_MTCO"
              glib:nick="cc-mtco"
              glib:name="DMAP_CC_MTCO">
      </member>
      <member name="cc_mlcl"
              value="17"
              c:identifier="DMAP_CC_MLCL"
              glib:nick="cc-mlcl"
              glib:name="DMAP_CC_MLCL">
      </member>
      <member name="cc_mlit"
              value="18"
              c:identifier="DMAP_CC_MLIT"
              glib:nick="cc-mlit"
              glib:name="DMAP_CC_MLIT">
      </member>
      <member name="cc_mbcl"
              value="19"
              c:identifier="DMAP_CC_MBCL"
              glib:nick="cc-mbcl"
              glib:name="DMAP_CC_MBCL">
      </member>
      <member name="cc_msrv"
              value="20"
              c:identifier="DMAP_CC_MSRV"
              glib:nick="cc-msrv"
              glib:name="DMAP_CC_MSRV">
      </member>
      <member name="cc_msau"
              value="21"
              c:identifier="DMAP_CC_MSAU"
              glib:nick="cc-msau"
              glib:name="DMAP_CC_MSAU">
      </member>
      <member name="cc_mslr"
              value="22"
              c:identifier="DMAP_CC_MSLR"
              glib:nick="cc-mslr"
              glib:name="DMAP_CC_MSLR">
      </member>
      <member name="cc_mpro"
              value="23"
              c:identifier="DMAP_CC_MPRO"
              glib:nick="cc-mpro"
              glib:name="DMAP_CC_MPRO">
      </member>
      <member name="cc_msal"
              value="24"
              c:identifier="DMAP_CC_MSAL"
              glib:nick="cc-msal"
              glib:name="DMAP_CC_MSAL">
      </member>
      <member name="cc_msup"
              value="25"
              c:identifier="DMAP_CC_MSUP"
              glib:nick="cc-msup"
              glib:name="DMAP_CC_MSUP">
      </member>
      <member name="cc_mspi"
              value="26"
              c:identifier="DMAP_CC_MSPI"
              glib:nick="cc-mspi"
              glib:name="DMAP_CC_MSPI">
      </member>
      <member name="cc_msex"
              value="27"
              c:identifier="DMAP_CC_MSEX"
              glib:nick="cc-msex"
              glib:name="DMAP_CC_MSEX">
      </member>
      <member name="cc_msbr"
              value="28"
              c:identifier="DMAP_CC_MSBR"
              glib:nick="cc-msbr"
              glib:name="DMAP_CC_MSBR">
      </member>
      <member name="cc_msqy"
              value="29"
              c:identifier="DMAP_CC_MSQY"
              glib:nick="cc-msqy"
              glib:name="DMAP_CC_MSQY">
      </member>
      <member name="cc_msix"
              value="30"
              c:identifier="DMAP_CC_MSIX"
              glib:nick="cc-msix"
              glib:name="DMAP_CC_MSIX">
      </member>
      <member name="cc_msrs"
              value="31"
              c:identifier="DMAP_CC_MSRS"
              glib:nick="cc-msrs"
              glib:name="DMAP_CC_MSRS">
      </member>
      <member name="cc_mstm"
              value="32"
              c:identifier="DMAP_CC_MSTM"
              glib:nick="cc-mstm"
              glib:name="DMAP_CC_MSTM">
      </member>
      <member name="cc_msdc"
              value="33"
              c:identifier="DMAP_CC_MSDC"
              glib:nick="cc-msdc"
              glib:name="DMAP_CC_MSDC">
      </member>
      <member name="cc_mccr"
              value="34"
              c:identifier="DMAP_CC_MCCR"
              glib:nick="cc-mccr"
              glib:name="DMAP_CC_MCCR">
      </member>
      <member name="cc_mcnm"
              value="35"
              c:identifier="DMAP_CC_MCNM"
              glib:nick="cc-mcnm"
              glib:name="DMAP_CC_MCNM">
      </member>
      <member name="cc_mcna"
              value="36"
              c:identifier="DMAP_CC_MCNA"
              glib:nick="cc-mcna"
              glib:name="DMAP_CC_MCNA">
      </member>
      <member name="cc_mcty"
              value="37"
              c:identifier="DMAP_CC_MCTY"
              glib:nick="cc-mcty"
              glib:name="DMAP_CC_MCTY">
      </member>
      <member name="cc_mlog"
              value="38"
              c:identifier="DMAP_CC_MLOG"
              glib:nick="cc-mlog"
              glib:name="DMAP_CC_MLOG">
      </member>
      <member name="cc_mlid"
              value="39"
              c:identifier="DMAP_CC_MLID"
              glib:nick="cc-mlid"
              glib:name="DMAP_CC_MLID">
      </member>
      <member name="cc_mupd"
              value="40"
              c:identifier="DMAP_CC_MUPD"
              glib:nick="cc-mupd"
              glib:name="DMAP_CC_MUPD">
      </member>
      <member name="cc_musr"
              value="41"
              c:identifier="DMAP_CC_MUSR"
              glib:nick="cc-musr"
              glib:name="DMAP_CC_MUSR">
      </member>
      <member name="cc_muty"
              value="42"
              c:identifier="DMAP_CC_MUTY"
              glib:nick="cc-muty"
              glib:name="DMAP_CC_MUTY">
      </member>
      <member name="cc_mudl"
              value="43"
              c:identifier="DMAP_CC_MUDL"
              glib:nick="cc-mudl"
              glib:name="DMAP_CC_MUDL">
      </member>
      <member name="cc_msma"
              value="44"
              c:identifier="DMAP_CC_MSMA"
              glib:nick="cc-msma"
              glib:name="DMAP_CC_MSMA">
      </member>
      <member name="cc_fquesch"
              value="45"
              c:identifier="DMAP_CC_FQUESCH"
              glib:nick="cc-fquesch"
              glib:name="DMAP_CC_FQUESCH">
      </member>
      <member name="cc_mdbk"
              value="46"
              c:identifier="DMAP_CC_MDBK"
              glib:nick="cc-mdbk"
              glib:name="DMAP_CC_MDBK">
      </member>
      <member name="cc_apro"
              value="47"
              c:identifier="DMAP_CC_APRO"
              glib:nick="cc-apro"
              glib:name="DMAP_CC_APRO">
      </member>
      <member name="cc_avdb"
              value="48"
              c:identifier="DMAP_CC_AVDB"
              glib:nick="cc-avdb"
              glib:name="DMAP_CC_AVDB">
      </member>
      <member name="cc_abro"
              value="49"
              c:identifier="DMAP_CC_ABRO"
              glib:nick="cc-abro"
              glib:name="DMAP_CC_ABRO">
      </member>
      <member name="cc_abal"
              value="50"
              c:identifier="DMAP_CC_ABAL"
              glib:nick="cc-abal"
              glib:name="DMAP_CC_ABAL">
      </member>
      <member name="cc_abar"
              value="51"
              c:identifier="DMAP_CC_ABAR"
              glib:nick="cc-abar"
              glib:name="DMAP_CC_ABAR">
      </member>
      <member name="cc_abcp"
              value="52"
              c:identifier="DMAP_CC_ABCP"
              glib:nick="cc-abcp"
              glib:name="DMAP_CC_ABCP">
      </member>
      <member name="cc_abgn"
              value="53"
              c:identifier="DMAP_CC_ABGN"
              glib:nick="cc-abgn"
              glib:name="DMAP_CC_ABGN">
      </member>
      <member name="cc_adbs"
              value="54"
              c:identifier="DMAP_CC_ADBS"
              glib:nick="cc-adbs"
              glib:name="DMAP_CC_ADBS">
      </member>
      <member name="cc_asal"
              value="55"
              c:identifier="DMAP_CC_ASAL"
              glib:nick="cc-asal"
              glib:name="DMAP_CC_ASAL">
      </member>
      <member name="cc_asai"
              value="56"
              c:identifier="DMAP_CC_ASAI"
              glib:nick="cc-asai"
              glib:name="DMAP_CC_ASAI">
      </member>
      <member name="cc_asaa"
              value="57"
              c:identifier="DMAP_CC_ASAA"
              glib:nick="cc-asaa"
              glib:name="DMAP_CC_ASAA">
      </member>
      <member name="cc_asar"
              value="58"
              c:identifier="DMAP_CC_ASAR"
              glib:nick="cc-asar"
              glib:name="DMAP_CC_ASAR">
      </member>
      <member name="cc_asbt"
              value="59"
              c:identifier="DMAP_CC_ASBT"
              glib:nick="cc-asbt"
              glib:name="DMAP_CC_ASBT">
      </member>
      <member name="cc_asbr"
              value="60"
              c:identifier="DMAP_CC_ASBR"
              glib:nick="cc-asbr"
              glib:name="DMAP_CC_ASBR">
      </member>
      <member name="cc_ascm"
              value="61"
              c:identifier="DMAP_CC_ASCM"
              glib:nick="cc-ascm"
              glib:name="DMAP_CC_ASCM">
      </member>
      <member name="cc_asco"
              value="62"
              c:identifier="DMAP_CC_ASCO"
              glib:nick="cc-asco"
              glib:name="DMAP_CC_ASCO">
      </member>
      <member name="cc_asda"
              value="63"
              c:identifier="DMAP_CC_ASDA"
              glib:nick="cc-asda"
              glib:name="DMAP_CC_ASDA">
      </member>
      <member name="cc_asdm"
              value="64"
              c:identifier="DMAP_CC_ASDM"
              glib:nick="cc-asdm"
              glib:name="DMAP_CC_ASDM">
      </member>
      <member name="cc_asdc"
              value="65"
              c:identifier="DMAP_CC_ASDC"
              glib:nick="cc-asdc"
              glib:name="DMAP_CC_ASDC">
      </member>
      <member name="cc_asdn"
              value="66"
              c:identifier="DMAP_CC_ASDN"
              glib:nick="cc-asdn"
              glib:name="DMAP_CC_ASDN">
      </member>
      <member name="cc_asdb"
              value="67"
              c:identifier="DMAP_CC_ASDB"
              glib:nick="cc-asdb"
              glib:name="DMAP_CC_ASDB">
      </member>
      <member name="cc_aseq"
              value="68"
              c:identifier="DMAP_CC_ASEQ"
              glib:nick="cc-aseq"
              glib:name="DMAP_CC_ASEQ">
      </member>
      <member name="cc_asfm"
              value="69"
              c:identifier="DMAP_CC_ASFM"
              glib:nick="cc-asfm"
              glib:name="DMAP_CC_ASFM">
      </member>
      <member name="cc_asgn"
              value="70"
              c:identifier="DMAP_CC_ASGN"
              glib:nick="cc-asgn"
              glib:name="DMAP_CC_ASGN">
      </member>
      <member name="cc_asdt"
              value="71"
              c:identifier="DMAP_CC_ASDT"
              glib:nick="cc-asdt"
              glib:name="DMAP_CC_ASDT">
      </member>
      <member name="cc_asrv"
              value="72"
              c:identifier="DMAP_CC_ASRV"
              glib:nick="cc-asrv"
              glib:name="DMAP_CC_ASRV">
      </member>
      <member name="cc_assr"
              value="73"
              c:identifier="DMAP_CC_ASSR"
              glib:nick="cc-assr"
              glib:name="DMAP_CC_ASSR">
      </member>
      <member name="cc_assz"
              value="74"
              c:identifier="DMAP_CC_ASSZ"
              glib:nick="cc-assz"
              glib:name="DMAP_CC_ASSZ">
      </member>
      <member name="cc_asst"
              value="75"
              c:identifier="DMAP_CC_ASST"
              glib:nick="cc-asst"
              glib:name="DMAP_CC_ASST">
      </member>
      <member name="cc_assp"
              value="76"
              c:identifier="DMAP_CC_ASSP"
              glib:nick="cc-assp"
              glib:name="DMAP_CC_ASSP">
      </member>
      <member name="cc_astm"
              value="77"
              c:identifier="DMAP_CC_ASTM"
              glib:nick="cc-astm"
              glib:name="DMAP_CC_ASTM">
      </member>
      <member name="cc_astc"
              value="78"
              c:identifier="DMAP_CC_ASTC"
              glib:nick="cc-astc"
              glib:name="DMAP_CC_ASTC">
      </member>
      <member name="cc_astn"
              value="79"
              c:identifier="DMAP_CC_ASTN"
              glib:nick="cc-astn"
              glib:name="DMAP_CC_ASTN">
      </member>
      <member name="cc_asur"
              value="80"
              c:identifier="DMAP_CC_ASUR"
              glib:nick="cc-asur"
              glib:name="DMAP_CC_ASUR">
      </member>
      <member name="cc_asyr"
              value="81"
              c:identifier="DMAP_CC_ASYR"
              glib:nick="cc-asyr"
              glib:name="DMAP_CC_ASYR">
      </member>
      <member name="cc_asdk"
              value="82"
              c:identifier="DMAP_CC_ASDK"
              glib:nick="cc-asdk"
              glib:name="DMAP_CC_ASDK">
      </member>
      <member name="cc_asul"
              value="83"
              c:identifier="DMAP_CC_ASUL"
              glib:nick="cc-asul"
              glib:name="DMAP_CC_ASUL">
      </member>
      <member name="cc_assu"
              value="84"
              c:identifier="DMAP_CC_ASSU"
              glib:nick="cc-assu"
              glib:name="DMAP_CC_ASSU">
      </member>
      <member name="cc_assa"
              value="85"
              c:identifier="DMAP_CC_ASSA"
              glib:nick="cc-assa"
              glib:name="DMAP_CC_ASSA">
      </member>
      <member name="cc_aply"
              value="86"
              c:identifier="DMAP_CC_APLY"
              glib:nick="cc-aply"
              glib:name="DMAP_CC_APLY">
      </member>
      <member name="cc_abpl"
              value="87"
              c:identifier="DMAP_CC_ABPL"
              glib:nick="cc-abpl"
              glib:name="DMAP_CC_ABPL">
      </member>
      <member name="cc_apso"
              value="88"
              c:identifier="DMAP_CC_APSO"
              glib:nick="cc-apso"
              glib:name="DMAP_CC_APSO">
      </member>
      <member name="cc_prsv"
              value="89"
              c:identifier="DMAP_CC_PRSV"
              glib:nick="cc-prsv"
              glib:name="DMAP_CC_PRSV">
      </member>
      <member name="cc_arif"
              value="90"
              c:identifier="DMAP_CC_ARIF"
              glib:nick="cc-arif"
              glib:name="DMAP_CC_ARIF">
      </member>
      <member name="cc_msas"
              value="91"
              c:identifier="DMAP_CC_MSAS"
              glib:nick="cc-msas"
              glib:name="DMAP_CC_MSAS">
      </member>
      <member name="cc_agrp"
              value="92"
              c:identifier="DMAP_CC_AGRP"
              glib:nick="cc-agrp"
              glib:name="DMAP_CC_AGRP">
      </member>
      <member name="cc_agal"
              value="93"
              c:identifier="DMAP_CC_AGAL"
              glib:nick="cc-agal"
              glib:name="DMAP_CC_AGAL">
      </member>
      <member name="cc_ascp"
              value="94"
              c:identifier="DMAP_CC_ASCP"
              glib:nick="cc-ascp"
              glib:name="DMAP_CC_ASCP">
      </member>
      <member name="cc_ppro"
              value="95"
              c:identifier="DMAP_CC_PPRO"
              glib:nick="cc-ppro"
              glib:name="DMAP_CC_PPRO">
      </member>
      <member name="cc_pasp"
              value="96"
              c:identifier="DMAP_CC_PASP"
              glib:nick="cc-pasp"
              glib:name="DMAP_CC_PASP">
      </member>
      <member name="cc_pfdt"
              value="97"
              c:identifier="DMAP_CC_PFDT"
              glib:nick="cc-pfdt"
              glib:name="DMAP_CC_PFDT">
      </member>
      <member name="cc_picd"
              value="98"
              c:identifier="DMAP_CC_PICD"
              glib:nick="cc-picd"
              glib:name="DMAP_CC_PICD">
      </member>
      <member name="cc_pimf"
              value="99"
              c:identifier="DMAP_CC_PIMF"
              glib:nick="cc-pimf"
              glib:name="DMAP_CC_PIMF">
      </member>
      <member name="cc_pfmt"
              value="100"
              c:identifier="DMAP_CC_PFMT"
              glib:nick="cc-pfmt"
              glib:name="DMAP_CC_PFMT">
      </member>
      <member name="cc_pifs"
              value="101"
              c:identifier="DMAP_CC_PIFS"
              glib:nick="cc-pifs"
              glib:name="DMAP_CC_PIFS">
      </member>
      <member name="cc_plsz"
              value="102"
              c:identifier="DMAP_CC_PLSZ"
              glib:nick="cc-plsz"
              glib:name="DMAP_CC_PLSZ">
      </member>
      <member name="cc_phgt"
              value="103"
              c:identifier="DMAP_CC_PHGT"
              glib:nick="cc-phgt"
              glib:name="DMAP_CC_PHGT">
      </member>
      <member name="cc_pwth"
              value="104"
              c:identifier="DMAP_CC_PWTH"
              glib:nick="cc-pwth"
              glib:name="DMAP_CC_PWTH">
      </member>
      <member name="cc_prat"
              value="105"
              c:identifier="DMAP_CC_PRAT"
              glib:nick="cc-prat"
              glib:name="DMAP_CC_PRAT">
      </member>
      <member name="cc_pcmt"
              value="106"
              c:identifier="DMAP_CC_PCMT"
              glib:nick="cc-pcmt"
              glib:name="DMAP_CC_PCMT">
      </member>
      <member name="cc_pret"
              value="107"
              c:identifier="DMAP_CC_PRET"
              glib:nick="cc-pret"
              glib:name="DMAP_CC_PRET">
      </member>
      <member name="cc_aecs"
              value="108"
              c:identifier="DMAP_CC_AECS"
              glib:nick="cc-aecs"
              glib:name="DMAP_CC_AECS">
      </member>
      <member name="cc_aesv"
              value="109"
              c:identifier="DMAP_CC_AESV"
              glib:nick="cc-aesv"
              glib:name="DMAP_CC_AESV">
      </member>
      <member name="cc_aehv"
              value="110"
              c:identifier="DMAP_CC_AEHV"
              glib:nick="cc-aehv"
              glib:name="DMAP_CC_AEHV">
      </member>
      <member name="cc_aesp"
              value="111"
              c:identifier="DMAP_CC_AESP"
              glib:nick="cc-aesp"
              glib:name="DMAP_CC_AESP">
      </member>
      <member name="cc_aepp"
              value="112"
              c:identifier="DMAP_CC_AEPP"
              glib:nick="cc-aepp"
              glib:name="DMAP_CC_AEPP">
      </member>
      <member name="cc_aeps"
              value="113"
              c:identifier="DMAP_CC_AEPS"
              glib:nick="cc-aeps"
              glib:name="DMAP_CC_AEPS">
      </member>
      <member name="cc_aesg"
              value="114"
              c:identifier="DMAP_CC_AESG"
              glib:nick="cc-aesg"
              glib:name="DMAP_CC_AESG">
      </member>
      <member name="cc_aemk"
              value="115"
              c:identifier="DMAP_CC_AEMK"
              glib:nick="cc-aemk"
              glib:name="DMAP_CC_AEMK">
      </member>
      <member name="cc_aemk2"
              value="116"
              c:identifier="DMAP_CC_AEMK2"
              glib:nick="cc-aemk2"
              glib:name="DMAP_CC_AEMK2">
      </member>
      <member name="cc_aefp"
              value="117"
              c:identifier="DMAP_CC_AEFP"
              glib:nick="cc-aefp"
              glib:name="DMAP_CC_AEFP">
      </member>
      <member name="cc_ated"
              value="118"
              c:identifier="DMAP_CC_ATED"
              glib:nick="cc-ated"
              glib:name="DMAP_CC_ATED">
      </member>
      <member name="cc_asgr"
              value="119"
              c:identifier="DMAP_CC_ASGR"
              glib:nick="cc-asgr"
              glib:name="DMAP_CC_ASGR">
      </member>
      <member name="cc_aemq"
              value="120"
              c:identifier="DMAP_CC_AEMQ"
              glib:nick="cc-aemq"
              glib:name="DMAP_CC_AEMQ">
      </member>
      <member name="cc_aesl"
              value="121"
              c:identifier="DMAP_CC_AESL"
              glib:nick="cc-aesl"
              glib:name="DMAP_CC_AESL">
      </member>
      <member name="cc_aesr"
              value="122"
              c:identifier="DMAP_CC_AESR"
              glib:nick="cc-aesr"
              glib:name="DMAP_CC_AESR">
      </member>
      <member name="cc_aetr"
              value="123"
              c:identifier="DMAP_CC_AETR"
              glib:nick="cc-aetr"
              glib:name="DMAP_CC_AETR">
      </member>
      <member name="cc_msed"
              value="124"
              c:identifier="DMAP_CC_MSED"
              glib:nick="cc-msed"
              glib:name="DMAP_CC_MSED">
      </member>
      <member name="cc_cmpa"
              value="125"
              c:identifier="DMAP_CC_CMPA"
              glib:nick="cc-cmpa"
              glib:name="DMAP_CC_CMPA">
      </member>
      <member name="cc_cmnm"
              value="126"
              c:identifier="DMAP_CC_CMNM"
              glib:nick="cc-cmnm"
              glib:name="DMAP_CC_CMNM">
      </member>
      <member name="cc_cmty"
              value="127"
              c:identifier="DMAP_CC_CMTY"
              glib:nick="cc-cmty"
              glib:name="DMAP_CC_CMTY">
      </member>
      <member name="cc_cmpg"
              value="128"
              c:identifier="DMAP_CC_CMPG"
              glib:nick="cc-cmpg"
              glib:name="DMAP_CC_CMPG">
      </member>
      <member name="cc_caci"
              value="129"
              c:identifier="DMAP_CC_CACI"
              glib:nick="cc-caci"
              glib:name="DMAP_CC_CACI">
      </member>
      <member name="cc_caps"
              value="130"
              c:identifier="DMAP_CC_CAPS"
              glib:nick="cc-caps"
              glib:name="DMAP_CC_CAPS">
      </member>
      <member name="cc_cash"
              value="131"
              c:identifier="DMAP_CC_CASH"
              glib:nick="cc-cash"
              glib:name="DMAP_CC_CASH">
      </member>
      <member name="cc_carp"
              value="132"
              c:identifier="DMAP_CC_CARP"
              glib:nick="cc-carp"
              glib:name="DMAP_CC_CARP">
      </member>
      <member name="cc_caas"
              value="133"
              c:identifier="DMAP_CC_CAAS"
              glib:nick="cc-caas"
              glib:name="DMAP_CC_CAAS">
      </member>
      <member name="cc_caar"
              value="134"
              c:identifier="DMAP_CC_CAAR"
              glib:nick="cc-caar"
              glib:name="DMAP_CC_CAAR">
      </member>
      <member name="cc_caia"
              value="135"
              c:identifier="DMAP_CC_CAIA"
              glib:nick="cc-caia"
              glib:name="DMAP_CC_CAIA">
      </member>
      <member name="cc_canp"
              value="136"
              c:identifier="DMAP_CC_CANP"
              glib:nick="cc-canp"
              glib:name="DMAP_CC_CANP">
      </member>
      <member name="cc_cann"
              value="137"
              c:identifier="DMAP_CC_CANN"
              glib:nick="cc-cann"
              glib:name="DMAP_CC_CANN">
      </member>
      <member name="cc_cana"
              value="138"
              c:identifier="DMAP_CC_CANA"
              glib:nick="cc-cana"
              glib:name="DMAP_CC_CANA">
      </member>
      <member name="cc_canl"
              value="139"
              c:identifier="DMAP_CC_CANL"
              glib:nick="cc-canl"
              glib:name="DMAP_CC_CANL">
      </member>
      <member name="cc_cang"
              value="140"
              c:identifier="DMAP_CC_CANG"
              glib:nick="cc-cang"
              glib:name="DMAP_CC_CANG">
      </member>
      <member name="cc_cant"
              value="141"
              c:identifier="DMAP_CC_CANT"
              glib:nick="cc-cant"
              glib:name="DMAP_CC_CANT">
      </member>
      <member name="cc_casp"
              value="142"
              c:identifier="DMAP_CC_CASP"
              glib:nick="cc-casp"
              glib:name="DMAP_CC_CASP">
      </member>
      <member name="cc_cass"
              value="143"
              c:identifier="DMAP_CC_CASS"
              glib:nick="cc-cass"
              glib:name="DMAP_CC_CASS">
      </member>
      <member name="cc_cast"
              value="144"
              c:identifier="DMAP_CC_CAST"
              glib:nick="cc-cast"
              glib:name="DMAP_CC_CAST">
      </member>
      <member name="cc_casu"
              value="145"
              c:identifier="DMAP_CC_CASU"
              glib:nick="cc-casu"
              glib:name="DMAP_CC_CASU">
      </member>
      <member name="cc_casg"
              value="146"
              c:identifier="DMAP_CC_CASG"
              glib:nick="cc-casg"
              glib:name="DMAP_CC_CASG">
      </member>
      <member name="cc_cacr"
              value="147"
              c:identifier="DMAP_CC_CACR"
              glib:nick="cc-cacr"
              glib:name="DMAP_CC_CACR">
      </member>
      <member name="cc_cmcp"
              value="148"
              c:identifier="DMAP_CC_CMCP"
              glib:nick="cc-cmcp"
              glib:name="DMAP_CC_CMCP">
      </member>
      <member name="cc_cmgt"
              value="149"
              c:identifier="DMAP_CC_CMGT"
              glib:nick="cc-cmgt"
              glib:name="DMAP_CC_CMGT">
      </member>
      <member name="cc_cmik"
              value="150"
              c:identifier="DMAP_CC_CMIK"
              glib:nick="cc-cmik"
              glib:name="DMAP_CC_CMIK">
      </member>
      <member name="cc_cmsp"
              value="151"
              c:identifier="DMAP_CC_CMSP"
              glib:nick="cc-cmsp"
              glib:name="DMAP_CC_CMSP">
      </member>
      <member name="cc_cmst"
              value="152"
              c:identifier="DMAP_CC_CMST"
              glib:nick="cc-cmst"
              glib:name="DMAP_CC_CMST">
      </member>
      <member name="cc_cmsv"
              value="153"
              c:identifier="DMAP_CC_CMSV"
              glib:nick="cc-cmsv"
              glib:name="DMAP_CC_CMSV">
      </member>
      <member name="cc_cmsr"
              value="154"
              c:identifier="DMAP_CC_CMSR"
              glib:nick="cc-cmsr"
              glib:name="DMAP_CC_CMSR">
      </member>
      <member name="cc_cmmk"
              value="155"
              c:identifier="DMAP_CC_CMMK"
              glib:nick="cc-cmmk"
              glib:name="DMAP_CC_CMMK">
      </member>
      <member name="cc_cmvo"
              value="156"
              c:identifier="DMAP_CC_CMVO"
              glib:nick="cc-cmvo"
              glib:name="DMAP_CC_CMVO">
      </member>
      <member name="cc_cmpr"
              value="157"
              c:identifier="DMAP_CC_CMPR"
              glib:nick="cc-cmpr"
              glib:name="DMAP_CC_CMPR">
      </member>
      <member name="cc_capr"
              value="158"
              c:identifier="DMAP_CC_CAPR"
              glib:nick="cc-capr"
              glib:name="DMAP_CC_CAPR">
      </member>
      <member name="cc_aefr"
              value="159"
              c:identifier="DMAP_CC_AEFR"
              glib:nick="cc-aefr"
              glib:name="DMAP_CC_AEFR">
      </member>
      <member name="cc_caov"
              value="160"
              c:identifier="DMAP_CC_CAOV"
              glib:nick="cc-caov"
              glib:name="DMAP_CC_CAOV">
      </member>
      <member name="cc_cmrl"
              value="161"
              c:identifier="DMAP_CC_CMRL"
              glib:nick="cc-cmrl"
              glib:name="DMAP_CC_CMRL">
      </member>
      <member name="cc_cahp"
              value="162"
              c:identifier="DMAP_CC_CAHP"
              glib:nick="cc-cahp"
              glib:name="DMAP_CC_CAHP">
      </member>
      <member name="cc_caiv"
              value="163"
              c:identifier="DMAP_CC_CAIV"
              glib:nick="cc-caiv"
              glib:name="DMAP_CC_CAIV">
      </member>
      <member name="cc_cavc"
              value="164"
              c:identifier="DMAP_CC_CAVC"
              glib:nick="cc-cavc"
              glib:name="DMAP_CC_CAVC">
      </member>
    </enumeration>
    <class name="ControlConnection"
           c:symbol-prefix="control_connection"
           c:type="DmapControlConnection"
           parent="Connection"
           glib:type-name="DmapControlConnection"
           glib:get-type="dmap_control_connection_get_type"
           glib:type-struct="ControlConnectionClass">
      <source-position filename="dmap-control-connection.h" line="84"/>
      <constructor name="new" c:identifier="dmap_control_connection_new">
        <source-position filename="dmap-control-connection.h" line="93"/>
        <return-value transfer-ownership="full">
          <type name="ControlConnection" c:type="DmapControlConnection*"/>
        </return-value>
        <parameters>
          <parameter name="name" transfer-ownership="none">
            <type name="utf8" c:type="const char*"/>
          </parameter>
          <parameter name="host" transfer-ownership="none">
            <type name="utf8" c:type="const char*"/>
          </parameter>
          <parameter name="port" transfer-ownership="none">
            <type name="guint" c:type="guint"/>
          </parameter>
          <parameter name="db" transfer-ownership="none">
            <type name="Db" c:type="DmapDb*"/>
          </parameter>
          <parameter name="factory" transfer-ownership="none">
            <type name="RecordFactory" c:type="DmapRecordFactory*"/>
          </parameter>
        </parameters>
      </constructor>
      <field name="dmap_connection_instance">
        <type name="Connection" c:type="DmapConnection"/>
      </field>
      <field name="priv">
        <type name="ControlConnectionPrivate"
              c:type="DmapControlConnectionPrivate*"/>
      </field>
    </class>
    <record name="ControlConnectionClass"
            c:type="DmapControlConnectionClass"
            glib:is-gtype-struct-for="ControlConnection">
      <source-position filename="dmap-control-connection.h" line="84"/>
      <field name="dmap_connection_class">
        <type name="ConnectionClass" c:type="DmapConnectionClass"/>
      </field>
    </record>
    <record name="ControlConnectionPrivate"
            c:type="DmapControlConnectionPrivate"
            disguised="1"
            opaque="1">
      <source-position filename="dmap-control-connection.h" line="80"/>
    </record>
    <enumeration name="ControlPlayState"
                 glib:type-name="DmapControlPlayState"
                 glib:get-type="dmap_control_play_state_get_type"
                 c:type="DmapControlPlayState">
      <member name="stopped"
              value="2"
              c:identifier="DMAP_CONTROL_PLAY_STOPPED"
              glib:nick="stopped"
              glib:name="DMAP_CONTROL_PLAY_STOPPED">
      </member>
      <member name="paused"
              value="3"
              c:identifier="DMAP_CONTROL_PLAY_PAUSED"
              glib:nick="paused"
              glib:name="DMAP_CONTROL_PLAY_PAUSED">
      </member>
      <member name="playing"
              value="4"
              c:identifier="DMAP_CONTROL_PLAY_PLAYING"
              glib:nick="playing"
              glib:name="DMAP_CONTROL_PLAY_PLAYING">
      </member>
    </enumeration>
    <interface name="ControlPlayer"
               c:symbol-prefix="control_player"
               c:type="DmapControlPlayer"
               glib:type-name="DmapControlPlayer"
               glib:get-type="dmap_control_player_get_type"
               glib:type-struct="ControlPlayerInterface">
      <source-position filename="dmap-control-player.h" line="94"/>
      <virtual-method name="cue_clear" invoker="cue_clear">
        <source-position filename="dmap-control-player.h" line="92"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="player" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="dmap-control-player.h"
                 line="143">a player</doc>
            <type name="ControlPlayer" c:type="DmapControlPlayer*"/>
          </instance-parameter>
        </parameters>
      </virtual-method>
      <virtual-method name="cue_play" invoker="cue_play">
        <source-position filename="dmap-control-player.h" line="93"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="player" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="dmap-control-player.h"
                 line="149">a player</doc>
            <type name="ControlPlayer" c:type="DmapControlPlayer*"/>
          </instance-parameter>
          <parameter name="records" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="dmap-control-player.h"
                 line="150">a list of records</doc>
            <type name="GLib.List" c:type="GList*">
              <type name="Record"/>
            </type>
          </parameter>
          <parameter name="index" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="dmap-control-player.h"
                 line="151">an index</doc>
            <type name="guint" c:type="guint"/>
          </parameter>
        </parameters>
      </virtual-method>
      <virtual-method name="next_item" invoker="next_item">
        <source-position filename="dmap-control-player.h" line="89"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="player" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="dmap-control-player.h"
                 line="131">a player</doc>
            <type name="ControlPlayer" c:type="DmapControlPlayer*"/>
          </instance-parameter>
        </parameters>
      </virtual-method>
      <virtual-method name="now_playing_artwork" invoker="now_playing_artwork">
        <source-position filename="dmap-control-player.h" line="85"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="dmap-control-player.h"
               line="112">artwork for the currently playing record.</doc>
          <type name="utf8" c:type="gchar*"/>
        </return-value>
        <parameters>
          <instance-parameter name="player" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="dmap-control-player.h"
                 line="108">a player</doc>
            <type name="ControlPlayer" c:type="DmapControlPlayer*"/>
          </instance-parameter>
          <parameter name="width" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="dmap-control-player.h"
                 line="109">width</doc>
            <type name="guint" c:type="guint"/>
          </parameter>
          <parameter name="height" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="dmap-control-player.h"
                 line="110">height</doc>
            <type name="guint" c:type="guint"/>
          </parameter>
        </parameters>
      </virtual-method>
      <virtual-method name="now_playing_record" invoker="now_playing_record">
        <source-position filename="dmap-control-player.h" line="84"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="dmap-control-player.h"
               line="102">the currently playing record.</doc>
          <type name="AvRecord" c:type="DmapAvRecord*"/>
        </return-value>
        <parameters>
          <instance-parameter name="player" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="dmap-control-player.h"
                 line="100">a player</doc>
            <type name="ControlPlayer" c:type="DmapControlPlayer*"/>
          </instance-parameter>
        </parameters>
      </virtual-method>
      <virtual-method name="pause" invoker="pause">
        <source-position filename="dmap-control-player.h" line="88"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="player" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="dmap-control-player.h"
                 line="125">a player</doc>
            <type name="ControlPlayer" c:type="DmapControlPlayer*"/>
          </instance-parameter>
        </parameters>
      </virtual-method>
      <virtual-method name="play_pause" invoker="play_pause">
        <source-position filename="dmap-control-player.h" line="87"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="player" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="dmap-control-player.h"
                 line="119">a player</doc>
            <type name="ControlPlayer" c:type="DmapControlPlayer*"/>
          </instance-parameter>
        </parameters>
      </virtual-method>
      <virtual-method name="prev_item" invoker="prev_item">
        <source-position filename="dmap-control-player.h" line="90"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="player" transfer-ownership="none">
            <type name="ControlPlayer" c:type="DmapControlPlayer*"/>
          </instance-parameter>
        </parameters>
      </virtual-method>
      <method name="cue_clear" c:identifier="dmap_control_player_cue_clear">
        <source-position filename="dmap-control-player.h" line="145"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="player" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="dmap-control-player.h"
                 line="143">a player</doc>
            <type name="ControlPlayer" c:type="DmapControlPlayer*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="cue_play" c:identifier="dmap_control_player_cue_play">
        <source-position filename="dmap-control-player.h" line="153"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="player" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="dmap-control-player.h"
                 line="149">a player</doc>
            <type name="ControlPlayer" c:type="DmapControlPlayer*"/>
          </instance-parameter>
          <parameter name="records" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="dmap-control-player.h"
                 line="150">a list of records</doc>
            <type name="GLib.List" c:type="GList*">
              <type name="Record"/>
            </type>
          </parameter>
          <parameter name="index" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="dmap-control-player.h"
                 line="151">an index</doc>
            <type name="guint" c:type="guint"/>
          </parameter>
        </parameters>
      </method>
      <method name="next_item" c:identifier="dmap_control_player_next_item">
        <source-position filename="dmap-control-player.h" line="133"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="player" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="dmap-control-player.h"
                 line="131">a player</doc>
            <type name="ControlPlayer" c:type="DmapControlPlayer*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="now_playing_artwork"
              c:identifier="dmap_control_player_now_playing_artwork">
        <source-position filename="dmap-control-player.h" line="114"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="dmap-control-player.h"
               line="112">artwork for the currently playing record.</doc>
          <type name="utf8" c:type="gchar*"/>
        </return-value>
        <parameters>
          <instance-parameter name="player" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="dmap-control-player.h"
                 line="108">a player</doc>
            <type name="ControlPlayer" c:type="DmapControlPlayer*"/>
          </instance-parameter>
          <parameter name="width" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="dmap-control-player.h"
                 line="109">width</doc>
            <type name="guint" c:type="guint"/>
          </parameter>
          <parameter name="height" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="dmap-control-player.h"
                 line="110">height</doc>
            <type name="guint" c:type="guint"/>
          </parameter>
        </parameters>
      </method>
      <method name="now_playing_record"
              c:identifier="dmap_control_player_now_playing_record">
        <source-position filename="dmap-control-player.h" line="104"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="dmap-control-player.h"
               line="102">the currently playing record.</doc>
          <type name="AvRecord" c:type="DmapAvRecord*"/>
        </return-value>
        <parameters>
          <instance-parameter name="player" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="dmap-control-player.h"
                 line="100">a player</doc>
            <type name="ControlPlayer" c:type="DmapControlPlayer*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="pause" c:identifier="dmap_control_player_pause">
        <source-position filename="dmap-control-player.h" line="127"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="player" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="dmap-control-player.h"
                 line="125">a player</doc>
            <type name="ControlPlayer" c:type="DmapControlPlayer*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="play_pause" c:identifier="dmap_control_player_play_pause">
        <source-position filename="dmap-control-player.h" line="121"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="player" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="dmap-control-player.h"
                 line="119">a player</doc>
            <type name="ControlPlayer" c:type="DmapControlPlayer*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="prev_item" c:identifier="dmap_control_player_prev_item">
        <source-position filename="dmap-control-player.h" line="139"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="player" transfer-ownership="none">
            <type name="ControlPlayer" c:type="DmapControlPlayer*"/>
          </instance-parameter>
        </parameters>
      </method>
      <property name="play-state"
                writable="1"
                transfer-ownership="none"
                default-value="DMAP_CONTROL_PLAY_STOPPED">
        <type name="ControlPlayState"/>
      </property>
      <property name="playing-time"
                writable="1"
                transfer-ownership="none"
                default-value="0">
        <type name="gulong" c:type="gulong"/>
      </property>
      <property name="repeat-state"
                writable="1"
                transfer-ownership="none"
                default-value="DMAP_CONTROL_REPEAT_NONE">
        <type name="ControlRepeatState"/>
      </property>
      <property name="shuffle-state"
                writable="1"
                transfer-ownership="none"
                default-value="FALSE">
        <type name="gboolean" c:type="gboolean"/>
      </property>
      <property name="volume"
                writable="1"
                transfer-ownership="none"
                default-value="0">
        <type name="gulong" c:type="gulong"/>
      </property>
    </interface>
    <record name="ControlPlayerInterface"
            c:type="DmapControlPlayerInterface"
            glib:is-gtype-struct-for="ControlPlayer">
      <source-position filename="dmap-control-player.h" line="94"/>
      <field name="parent_class">
        <type name="GObject.TypeInterface" c:type="GTypeInterface"/>
      </field>
      <field name="now_playing_record">
        <callback name="now_playing_record">
          <source-position filename="dmap-control-player.h" line="84"/>
          <return-value transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="dmap-control-player.h"
                 line="102">the currently playing record.</doc>
            <type name="AvRecord" c:type="DmapAvRecord*"/>
          </return-value>
          <parameters>
            <parameter name="player" transfer-ownership="none">
              <doc xml:space="preserve"
                   filename="dmap-control-player.h"
                   line="100">a player</doc>
              <type name="ControlPlayer" c:type="DmapControlPlayer*"/>
            </parameter>
          </parameters>
        </callback>
      </field>
      <field name="now_playing_artwork">
        <callback name="now_playing_artwork">
          <source-position filename="dmap-control-player.h" line="85"/>
          <return-value transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="dmap-control-player.h"
                 line="112">artwork for the currently playing record.</doc>
            <type name="utf8" c:type="gchar*"/>
          </return-value>
          <parameters>
            <parameter name="player" transfer-ownership="none">
              <doc xml:space="preserve"
                   filename="dmap-control-player.h"
                   line="108">a player</doc>
              <type name="ControlPlayer" c:type="DmapControlPlayer*"/>
            </parameter>
            <parameter name="width" transfer-ownership="none">
              <doc xml:space="preserve"
                   filename="dmap-control-player.h"
                   line="109">width</doc>
              <type name="guint" c:type="guint"/>
            </parameter>
            <parameter name="height" transfer-ownership="none">
              <doc xml:space="preserve"
                   filename="dmap-control-player.h"
                   line="110">height</doc>
              <type name="guint" c:type="guint"/>
            </parameter>
          </parameters>
        </callback>
      </field>
      <field name="play_pause">
        <callback name="play_pause">
          <source-position filename="dmap-control-player.h" line="87"/>
          <return-value transfer-ownership="none">
            <type name="none" c:type="void"/>
          </return-value>
          <parameters>
            <parameter name="player" transfer-ownership="none">
              <doc xml:space="preserve"
                   filename="dmap-control-player.h"
                   line="119">a player</doc>
              <type name="ControlPlayer" c:type="DmapControlPlayer*"/>
            </parameter>
          </parameters>
        </callback>
      </field>
      <field name="pause">
        <callback name="pause">
          <source-position filename="dmap-control-player.h" line="88"/>
          <return-value transfer-ownership="none">
            <type name="none" c:type="void"/>
          </return-value>
          <parameters>
            <parameter name="player" transfer-ownership="none">
              <doc xml:space="preserve"
                   filename="dmap-control-player.h"
                   line="125">a player</doc>
              <type name="ControlPlayer" c:type="DmapControlPlayer*"/>
            </parameter>
          </parameters>
        </callback>
      </field>
      <field name="next_item">
        <callback name="next_item">
          <source-position filename="dmap-control-player.h" line="89"/>
          <return-value transfer-ownership="none">
            <type name="none" c:type="void"/>
          </return-value>
          <parameters>
            <parameter name="player" transfer-ownership="none">
              <doc xml:space="preserve"
                   filename="dmap-control-player.h"
                   line="131">a player</doc>
              <type name="ControlPlayer" c:type="DmapControlPlayer*"/>
            </parameter>
          </parameters>
        </callback>
      </field>
      <field name="prev_item">
        <callback name="prev_item">
          <source-position filename="dmap-control-player.h" line="90"/>
          <return-value transfer-ownership="none">
            <type name="none" c:type="void"/>
          </return-value>
          <parameters>
            <parameter name="player" transfer-ownership="none">
              <type name="ControlPlayer" c:type="DmapControlPlayer*"/>
            </parameter>
          </parameters>
        </callback>
      </field>
      <field name="cue_clear">
        <callback name="cue_clear">
          <source-position filename="dmap-control-player.h" line="92"/>
          <return-value transfer-ownership="none">
            <type name="none" c:type="void"/>
          </return-value>
          <parameters>
            <parameter name="player" transfer-ownership="none">
              <doc xml:space="preserve"
                   filename="dmap-control-player.h"
                   line="143">a player</doc>
              <type name="ControlPlayer" c:type="DmapControlPlayer*"/>
            </parameter>
          </parameters>
        </callback>
      </field>
      <field name="cue_play">
        <callback name="cue_play">
          <source-position filename="dmap-control-player.h" line="93"/>
          <return-value transfer-ownership="none">
            <type name="none" c:type="void"/>
          </return-value>
          <parameters>
            <parameter name="player" transfer-ownership="none">
              <doc xml:space="preserve"
                   filename="dmap-control-player.h"
                   line="149">a player</doc>
              <type name="ControlPlayer" c:type="DmapControlPlayer*"/>
            </parameter>
            <parameter name="records" transfer-ownership="none">
              <doc xml:space="preserve"
                   filename="dmap-control-player.h"
                   line="150">a list of records</doc>
              <type name="GLib.List" c:type="GList*">
                <type name="Record"/>
              </type>
            </parameter>
            <parameter name="index" transfer-ownership="none">
              <doc xml:space="preserve"
                   filename="dmap-control-player.h"
                   line="151">an index</doc>
              <type name="guint" c:type="guint"/>
            </parameter>
          </parameters>
        </callback>
      </field>
    </record>
    <enumeration name="ControlRepeatState"
                 glib:type-name="DmapControlRepeatState"
                 glib:get-type="dmap_control_repeat_state_get_type"
                 c:type="DmapControlRepeatState">
      <member name="none"
              value="0"
              c:identifier="DMAP_CONTROL_REPEAT_NONE"
              glib:nick="none"
              glib:name="DMAP_CONTROL_REPEAT_NONE">
      </member>
      <member name="single"
              value="1"
              c:identifier="DMAP_CONTROL_REPEAT_SINGLE"
              glib:nick="single"
              glib:name="DMAP_CONTROL_REPEAT_SINGLE">
      </member>
      <member name="all"
              value="2"
              c:identifier="DMAP_CONTROL_REPEAT_ALL"
              glib:nick="all"
              glib:name="DMAP_CONTROL_REPEAT_ALL">
      </member>
    </enumeration>
    <class name="ControlShare"
           c:symbol-prefix="control_share"
           c:type="DmapControlShare"
           parent="Share"
           glib:type-name="DmapControlShare"
           glib:get-type="dmap_control_share_get_type"
           glib:type-struct="ControlShareClass">
      <source-position filename="dmap-control-share.h" line="110"/>
      <constructor name="new" c:identifier="dmap_control_share_new">
        <doc xml:space="preserve"
             filename="dmap-control-share.h"
             line="114">Creates a new DACP share and publishes it using mDNS.</doc>
        <source-position filename="dmap-control-share.h" line="127"/>
        <return-value transfer-ownership="full">
          <doc xml:space="preserve"
               filename="dmap-control-share.h"
               line="125">a pointer to a #DmapControlShare.</doc>
          <type name="ControlShare" c:type="DmapControlShare*"/>
        </return-value>
        <parameters>
          <parameter name="library_name" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="dmap-control-share.h"
                 line="116">The library name that will be shown in the remote.</doc>
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
          <parameter name="player" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="dmap-control-share.h"
                 line="117">A #DmapControlPlayer instance, used to retrieve information from a player
         implementation.</doc>
            <type name="ControlPlayer" c:type="DmapControlPlayer*"/>
          </parameter>
          <parameter name="db" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="dmap-control-share.h"
                 line="119">a media database represented by a #DmapDb instance.</doc>
            <type name="Db" c:type="DmapDb*"/>
          </parameter>
          <parameter name="container_db" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="dmap-control-share.h"
                 line="120">a container (album) database represented by a #DmapContainerDb
               instance.</doc>
            <type name="ContainerDb" c:type="DmapContainerDb*"/>
          </parameter>
        </parameters>
      </constructor>
      <virtual-method name="add_guid">
        <source-position filename="dmap-control-share.h" line="103"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="share" transfer-ownership="none">
            <type name="ControlShare" c:type="DmapControlShare*"/>
          </instance-parameter>
          <parameter name="guid" transfer-ownership="none">
            <type name="utf8" c:type="gchar*"/>
          </parameter>
        </parameters>
      </virtual-method>
      <virtual-method name="lookup_guid">
        <source-position filename="dmap-control-share.h" line="102"/>
        <return-value transfer-ownership="none">
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <instance-parameter name="share" transfer-ownership="none">
            <type name="ControlShare" c:type="DmapControlShare*"/>
          </instance-parameter>
          <parameter name="guid" transfer-ownership="none">
            <type name="utf8" c:type="gchar*"/>
          </parameter>
        </parameters>
      </virtual-method>
      <virtual-method name="remote_found">
        <source-position filename="dmap-control-share.h" line="105"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="share" transfer-ownership="none">
            <type name="ControlShare" c:type="DmapControlShare*"/>
          </instance-parameter>
          <parameter name="service_name" transfer-ownership="none">
            <type name="utf8" c:type="gchar*"/>
          </parameter>
          <parameter name="remote_name" transfer-ownership="none">
            <type name="utf8" c:type="gchar*"/>
          </parameter>
        </parameters>
      </virtual-method>
      <virtual-method name="remote_lost">
        <source-position filename="dmap-control-share.h" line="107"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="share" transfer-ownership="none">
            <type name="ControlShare" c:type="DmapControlShare*"/>
          </instance-parameter>
          <parameter name="service_name" transfer-ownership="none">
            <type name="utf8" c:type="gchar*"/>
          </parameter>
        </parameters>
      </virtual-method>
      <virtual-method name="remote_paired">
        <source-position filename="dmap-control-share.h" line="108"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="share" transfer-ownership="none">
            <type name="ControlShare" c:type="DmapControlShare*"/>
          </instance-parameter>
          <parameter name="service_name" transfer-ownership="none">
            <type name="utf8" c:type="gchar*"/>
          </parameter>
          <parameter name="connected" transfer-ownership="none">
            <type name="gboolean" c:type="gboolean"/>
          </parameter>
        </parameters>
      </virtual-method>
      <method name="pair" c:identifier="dmap_control_share_pair">
        <doc xml:space="preserve"
             filename="dmap-control-share.h"
             line="130">Pairs a DACP client (Remote) with this server. If the passcode is
correct (the same as shown on the remote), the remote will start connecting
to this server.</doc>
        <source-position filename="dmap-control-share.h" line="140"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="share" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="dmap-control-share.h"
                 line="132">a #DmapControlShare</doc>
            <type name="ControlShare" c:type="DmapControlShare*"/>
          </instance-parameter>
          <parameter name="service_name" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="dmap-control-share.h"
                 line="133">DACP client (remote) service identifier.</doc>
            <type name="utf8" c:type="gchar*"/>
          </parameter>
          <parameter name="passcode" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="dmap-control-share.h"
                 line="134">4-Digit PIN code entered by the user.</doc>
            <type name="utf8" c:type="gchar*"/>
          </parameter>
        </parameters>
      </method>
      <method name="player_updated"
              c:identifier="dmap_control_share_player_updated">
        <source-position filename="dmap-control-share.h" line="173"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="share" transfer-ownership="none">
            <type name="ControlShare" c:type="DmapControlShare*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="start_lookup"
              c:identifier="dmap_control_share_start_lookup"
              throws="1">
        <doc xml:space="preserve"
             filename="dmap-control-share.h"
             line="143">Start looking up for DACP remotes. Connect to #DmapControlShare::remote-found signal
to detect new remotes. Be aware that when a #DmapControlShare is created, only
after calling this function is that it starts looking up for Remotes on the
network.</doc>
        <source-position filename="dmap-control-share.h" line="155"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="dmap-control-share.h"
               line="153">TRUE on success, else FALSE with error set.</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <instance-parameter name="share" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="dmap-control-share.h"
                 line="145">A #DmapControlShare.</doc>
            <type name="ControlShare" c:type="DmapControlShare*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="stop_lookup"
              c:identifier="dmap_control_share_stop_lookup"
              throws="1">
        <doc xml:space="preserve"
             filename="dmap-control-share.h"
             line="157">Stop looking up for DACP remotes.</doc>
        <source-position filename="dmap-control-share.h" line="164"/>
        <return-value transfer-ownership="none">
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <instance-parameter name="share" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="dmap-control-share.h"
                 line="159">A #DmapControlShare.</doc>
            <type name="ControlShare" c:type="DmapControlShare*"/>
          </instance-parameter>
        </parameters>
      </method>
      <property name="library-name"
                writable="1"
                transfer-ownership="none"
                default-value="NULL">
        <type name="utf8" c:type="gchar*"/>
      </property>
      <property name="player"
                writable="1"
                construct-only="1"
                transfer-ownership="none">
        <type name="GObject.Object"/>
      </property>
      <field name="dmap_av_share_instance">
        <type name="AvShare" c:type="DmapAvShare"/>
      </field>
      <field name="priv">
        <type name="ControlSharePrivate" c:type="DmapControlSharePrivate*"/>
      </field>
      <glib:signal name="add-guid" when="last">
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <parameter name="object" transfer-ownership="none">
            <type name="utf8" c:type="gchar*"/>
          </parameter>
        </parameters>
      </glib:signal>
      <glib:signal name="lookup-guid" when="last">
        <return-value transfer-ownership="none">
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <parameter name="object" transfer-ownership="none">
            <type name="utf8" c:type="gchar*"/>
          </parameter>
        </parameters>
      </glib:signal>
      <glib:signal name="remote-found" when="last">
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <parameter name="object" transfer-ownership="none">
            <type name="utf8" c:type="gchar*"/>
          </parameter>
          <parameter name="p0" transfer-ownership="none">
            <type name="utf8" c:type="gchar*"/>
          </parameter>
        </parameters>
      </glib:signal>
      <glib:signal name="remote-lost" when="last">
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <parameter name="object" transfer-ownership="none">
            <type name="utf8" c:type="gchar*"/>
          </parameter>
        </parameters>
      </glib:signal>
      <glib:signal name="remote-paired" when="last">
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <parameter name="object" transfer-ownership="none">
            <type name="utf8" c:type="gchar*"/>
          </parameter>
          <parameter name="p0" transfer-ownership="none">
            <type name="gboolean" c:type="gboolean"/>
          </parameter>
        </parameters>
      </glib:signal>
    </class>
    <record name="ControlShareClass"
            c:type="DmapControlShareClass"
            glib:is-gtype-struct-for="ControlShare">
      <source-position filename="dmap-control-share.h" line="110"/>
      <field name="dmap_av_share_class">
        <type name="AvShareClass" c:type="DmapAvShareClass"/>
      </field>
      <field name="lookup_guid">
        <callback name="lookup_guid">
          <source-position filename="dmap-control-share.h" line="102"/>
          <return-value transfer-ownership="none">
            <type name="gboolean" c:type="gboolean"/>
          </return-value>
          <parameters>
            <parameter name="share" transfer-ownership="none">
              <type name="ControlShare" c:type="DmapControlShare*"/>
            </parameter>
            <parameter name="guid" transfer-ownership="none">
              <type name="utf8" c:type="gchar*"/>
            </parameter>
          </parameters>
        </callback>
      </field>
      <field name="add_guid">
        <callback name="add_guid">
          <source-position filename="dmap-control-share.h" line="103"/>
          <return-value transfer-ownership="none">
            <type name="none" c:type="void"/>
          </return-value>
          <parameters>
            <parameter name="share" transfer-ownership="none">
              <type name="ControlShare" c:type="DmapControlShare*"/>
            </parameter>
            <parameter name="guid" transfer-ownership="none">
              <type name="utf8" c:type="gchar*"/>
            </parameter>
          </parameters>
        </callback>
      </field>
      <field name="remote_found">
        <callback name="remote_found">
          <source-position filename="dmap-control-share.h" line="105"/>
          <return-value transfer-ownership="none">
            <type name="none" c:type="void"/>
          </return-value>
          <parameters>
            <parameter name="share" transfer-ownership="none">
              <type name="ControlShare" c:type="DmapControlShare*"/>
            </parameter>
            <parameter name="service_name" transfer-ownership="none">
              <type name="utf8" c:type="gchar*"/>
            </parameter>
            <parameter name="remote_name" transfer-ownership="none">
              <type name="utf8" c:type="gchar*"/>
            </parameter>
          </parameters>
        </callback>
      </field>
      <field name="remote_lost">
        <callback name="remote_lost">
          <source-position filename="dmap-control-share.h" line="107"/>
          <return-value transfer-ownership="none">
            <type name="none" c:type="void"/>
          </return-value>
          <parameters>
            <parameter name="share" transfer-ownership="none">
              <type name="ControlShare" c:type="DmapControlShare*"/>
            </parameter>
            <parameter name="service_name" transfer-ownership="none">
              <type name="utf8" c:type="gchar*"/>
            </parameter>
          </parameters>
        </callback>
      </field>
      <field name="remote_paired">
        <callback name="remote_paired">
          <source-position filename="dmap-control-share.h" line="108"/>
          <return-value transfer-ownership="none">
            <type name="none" c:type="void"/>
          </return-value>
          <parameters>
            <parameter name="share" transfer-ownership="none">
              <type name="ControlShare" c:type="DmapControlShare*"/>
            </parameter>
            <parameter name="service_name" transfer-ownership="none">
              <type name="utf8" c:type="gchar*"/>
            </parameter>
            <parameter name="connected" transfer-ownership="none">
              <type name="gboolean" c:type="gboolean"/>
            </parameter>
          </parameters>
        </callback>
      </field>
    </record>
    <record name="ControlSharePrivate"
            c:type="DmapControlSharePrivate"
            disguised="1"
            opaque="1">
      <source-position filename="dmap-control-share.h" line="92"/>
    </record>
    <function-macro name="DB" c:identifier="DMAP_DB" introspectable="0">
      <doc xml:space="preserve"
           filename="dmap-db.h"
           line="42">Casts a #DmapDb or derived pointer into a (DmapDb *) pointer.
Depending on the current debugging level, this function may invoke
certain runtime checks to identify invalid casts.</doc>
      <source-position filename="dmap-db.h" line="50"/>
      <parameters>
        <parameter name="o">
          <doc xml:space="preserve"
               filename="dmap-db.h"
               line="44">Object which is subject to casting.</doc>
        </parameter>
      </parameters>
    </function-macro>
    <function-macro name="DB_GET_INTERFACE"
                    c:identifier="DMAP_DB_GET_INTERFACE"
                    introspectable="0">
      <doc xml:space="preserve"
           filename="dmap-db.h"
           line="60">Get the insterface structure associated to a #DmapDb instance.</doc>
      <source-position filename="dmap-db.h" line="68"/>
      <parameters>
        <parameter name="o">
          <doc xml:space="preserve"
               filename="dmap-db.h"
               line="62">a #DmapDb instance.</doc>
        </parameter>
      </parameters>
    </function-macro>
    <interface name="Db"
               c:symbol-prefix="db"
               c:type="DmapDb"
               glib:type-name="DmapDb"
               glib:get-type="dmap_db_get_type"
               glib:type-struct="DbInterface">
      <source-position filename="dmap-db.h" line="107"/>
      <virtual-method name="add" invoker="add" throws="1">
        <doc xml:space="preserve"
             filename="dmap-db.h"
             line="118">Add a record to the database.</doc>
        <source-position filename="dmap-db.h" line="99"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="dmap-db.h"
               line="126">The ID for the newly added record or @DMAP_DB_ID_BAD on failure. A
reference to the record will be retained by the database (if required; an
adapter-type implementation might not want to retain a reference as the
record data may be placed elsewhere). In all cases, a returned record should
be unrefed by the calling code.</doc>
          <type name="guint" c:type="guint"/>
        </return-value>
        <parameters>
          <instance-parameter name="db" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="dmap-db.h"
                 line="120">A media database.</doc>
            <type name="Db" c:type="DmapDb*"/>
          </instance-parameter>
          <parameter name="record" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="dmap-db.h"
                 line="121">A database record.</doc>
            <type name="Record" c:type="DmapRecord*"/>
          </parameter>
        </parameters>
      </virtual-method>
      <virtual-method name="add_path" invoker="add_path" throws="1">
        <doc xml:space="preserve"
             filename="dmap-db.h"
             line="150">Create a record and add it to the database.</doc>
        <source-position filename="dmap-db.h" line="101"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="dmap-db.h"
               line="158">The ID for the newly added record or DMAP_DB_ID_BAD on failure.

See also the notes for dmap_db_add regarding reference counting.</doc>
          <type name="guint" c:type="guint"/>
        </return-value>
        <parameters>
          <instance-parameter name="db" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="dmap-db.h"
                 line="152">A media database.</doc>
            <type name="Db" c:type="DmapDb*"/>
          </instance-parameter>
          <parameter name="path" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="dmap-db.h"
                 line="153">A path to an appropriate media file.</doc>
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
        </parameters>
      </virtual-method>
      <virtual-method name="add_with_id" invoker="add_with_id" throws="1">
        <doc xml:space="preserve"
             filename="dmap-db.h"
             line="134">Add a record to the database and assign it the given ID. @id cannot be
@DMAP_DB_ID_BAD.</doc>
        <source-position filename="dmap-db.h" line="100"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="dmap-db.h"
               line="144">The ID for the newly added record or DMAP_DB_ID_BAD on failure.

See also the notes for dmap_db_add regarding reference counting.</doc>
          <type name="guint" c:type="guint"/>
        </return-value>
        <parameters>
          <instance-parameter name="db" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="dmap-db.h"
                 line="136">A media database.</doc>
            <type name="Db" c:type="DmapDb*"/>
          </instance-parameter>
          <parameter name="record" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="dmap-db.h"
                 line="137">A database record.</doc>
            <type name="Record" c:type="DmapRecord*"/>
          </parameter>
          <parameter name="id" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="dmap-db.h"
                 line="138">A database record ID.</doc>
            <type name="guint" c:type="guint"/>
          </parameter>
        </parameters>
      </virtual-method>
      <virtual-method name="count">
        <source-position filename="dmap-db.h" line="106"/>
        <return-value transfer-ownership="none">
          <type name="gint64" c:type="gint64"/>
        </return-value>
        <parameters>
          <instance-parameter name="db" transfer-ownership="none">
            <type name="Db" c:type="const DmapDb*"/>
          </instance-parameter>
        </parameters>
      </virtual-method>
      <virtual-method name="foreach" invoker="foreach">
        <doc xml:space="preserve"
             filename="dmap-db.h"
             line="197">Apply a function to each record in a media database.</doc>
        <source-position filename="dmap-db.h" line="105"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="db" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="dmap-db.h"
                 line="199">A media database.</doc>
            <type name="Db" c:type="const DmapDb*"/>
          </instance-parameter>
          <parameter name="func"
                     transfer-ownership="none"
                     scope="call"
                     closure="1">
            <doc xml:space="preserve"
                 filename="dmap-db.h"
                 line="200">The function to apply to each record in the database.</doc>
            <type name="IdRecordFunc" c:type="DmapIdRecordFunc"/>
          </parameter>
          <parameter name="data"
                     transfer-ownership="none"
                     nullable="1"
                     allow-none="1">
            <doc xml:space="preserve"
                 filename="dmap-db.h"
                 line="201">User data to pass to the function.</doc>
            <type name="gpointer" c:type="gpointer"/>
          </parameter>
        </parameters>
      </virtual-method>
      <virtual-method name="lookup_by_id" invoker="lookup_by_id">
        <source-position filename="dmap-db.h" line="102"/>
        <return-value transfer-ownership="full">
          <doc xml:space="preserve"
               filename="dmap-db.h"
               line="169">the database record corresponding to @id. @id
cannot be DMAP_DB_ID_BAD. The returned record should be unrefed by the
calling code when no longer required.

If you are implementing a full database using this API, then you
probably want to increment the reference count before returning a record
pointer.

On the other hand, if you are implementing an adapter class
and the records are stored elsewhere, then you will probably return a
transient record. That is, once the user is done using it, the returned
record should be free'd because it is a adapter copy of the real record.
In this case, the reference count should not be incremented before
returning a record pointer.</doc>
          <type name="Record" c:type="DmapRecord*"/>
        </return-value>
        <parameters>
          <instance-parameter name="db" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="dmap-db.h"
                 line="166">A media database.</doc>
            <type name="Db" c:type="const DmapDb*"/>
          </instance-parameter>
          <parameter name="id" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="dmap-db.h"
                 line="167">A record ID.</doc>
            <type name="guint" c:type="guint"/>
          </parameter>
        </parameters>
      </virtual-method>
      <virtual-method name="lookup_id_by_location"
                      invoker="lookup_id_by_location">
        <source-position filename="dmap-db.h" line="103"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="dmap-db.h"
               line="191">the database id for the record corresponding to @path or
DMAP_DB_ID_BAD if such a record does not exist.</doc>
          <type name="guint" c:type="guint"/>
        </return-value>
        <parameters>
          <instance-parameter name="db" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="dmap-db.h"
                 line="188">A media database.</doc>
            <type name="Db" c:type="const DmapDb*"/>
          </instance-parameter>
          <parameter name="location" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="dmap-db.h"
                 line="189">A record location.</doc>
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
        </parameters>
      </virtual-method>
      <method name="add" c:identifier="dmap_db_add" throws="1">
        <doc xml:space="preserve"
             filename="dmap-db.h"
             line="118">Add a record to the database.</doc>
        <source-position filename="dmap-db.h" line="132"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="dmap-db.h"
               line="126">The ID for the newly added record or @DMAP_DB_ID_BAD on failure. A
reference to the record will be retained by the database (if required; an
adapter-type implementation might not want to retain a reference as the
record data may be placed elsewhere). In all cases, a returned record should
be unrefed by the calling code.</doc>
          <type name="guint" c:type="guint"/>
        </return-value>
        <parameters>
          <instance-parameter name="db" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="dmap-db.h"
                 line="120">A media database.</doc>
            <type name="Db" c:type="DmapDb*"/>
          </instance-parameter>
          <parameter name="record" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="dmap-db.h"
                 line="121">A database record.</doc>
            <type name="Record" c:type="DmapRecord*"/>
          </parameter>
        </parameters>
      </method>
      <method name="add_path" c:identifier="dmap_db_add_path" throws="1">
        <doc xml:space="preserve"
             filename="dmap-db.h"
             line="150">Create a record and add it to the database.</doc>
        <source-position filename="dmap-db.h" line="162"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="dmap-db.h"
               line="158">The ID for the newly added record or DMAP_DB_ID_BAD on failure.

See also the notes for dmap_db_add regarding reference counting.</doc>
          <type name="guint" c:type="guint"/>
        </return-value>
        <parameters>
          <instance-parameter name="db" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="dmap-db.h"
                 line="152">A media database.</doc>
            <type name="Db" c:type="DmapDb*"/>
          </instance-parameter>
          <parameter name="path" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="dmap-db.h"
                 line="153">A path to an appropriate media file.</doc>
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
        </parameters>
      </method>
      <method name="add_with_id" c:identifier="dmap_db_add_with_id" throws="1">
        <doc xml:space="preserve"
             filename="dmap-db.h"
             line="134">Add a record to the database and assign it the given ID. @id cannot be
@DMAP_DB_ID_BAD.</doc>
        <source-position filename="dmap-db.h" line="148"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="dmap-db.h"
               line="144">The ID for the newly added record or DMAP_DB_ID_BAD on failure.

See also the notes for dmap_db_add regarding reference counting.</doc>
          <type name="guint" c:type="guint"/>
        </return-value>
        <parameters>
          <instance-parameter name="db" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="dmap-db.h"
                 line="136">A media database.</doc>
            <type name="Db" c:type="DmapDb*"/>
          </instance-parameter>
          <parameter name="record" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="dmap-db.h"
                 line="137">A database record.</doc>
            <type name="Record" c:type="DmapRecord*"/>
          </parameter>
          <parameter name="id" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="dmap-db.h"
                 line="138">A database record ID.</doc>
            <type name="guint" c:type="guint"/>
          </parameter>
        </parameters>
      </method>
      <method name="apply_filter" c:identifier="dmap_db_apply_filter">
        <source-position filename="dmap-db.h" line="222"/>
        <return-value transfer-ownership="full">
          <doc xml:space="preserve"
               filename="dmap-db.h"
               line="220">the records which satisfy a record in @filter_def.</doc>
          <type name="GLib.HashTable" c:type="GHashTable*">
            <type name="guint"/>
            <type name="Record"/>
          </type>
        </return-value>
        <parameters>
          <instance-parameter name="db" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="dmap-db.h"
                 line="217">A media database.</doc>
            <type name="Db" c:type="DmapDb*"/>
          </instance-parameter>
          <parameter name="filter_def" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="dmap-db.h"
                 line="218">A series of filter definitions.</doc>
            <type name="GLib.SList" c:type="GSList*">
              <type name="DbFilterDefinition"/>
            </type>
          </parameter>
        </parameters>
      </method>
      <method name="count" c:identifier="dmap_db_count">
        <source-position filename="dmap-db.h" line="213"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="dmap-db.h"
               line="211">the number of records in the database.</doc>
          <type name="gulong" c:type="gulong"/>
        </return-value>
        <parameters>
          <instance-parameter name="db" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="dmap-db.h"
                 line="209">A media database.</doc>
            <type name="Db" c:type="const DmapDb*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="foreach" c:identifier="dmap_db_foreach">
        <doc xml:space="preserve"
             filename="dmap-db.h"
             line="197">Apply a function to each record in a media database.</doc>
        <source-position filename="dmap-db.h" line="205"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="db" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="dmap-db.h"
                 line="199">A media database.</doc>
            <type name="Db" c:type="const DmapDb*"/>
          </instance-parameter>
          <parameter name="func"
                     transfer-ownership="none"
                     scope="call"
                     closure="1">
            <doc xml:space="preserve"
                 filename="dmap-db.h"
                 line="200">The function to apply to each record in the database.</doc>
            <type name="IdRecordFunc" c:type="DmapIdRecordFunc"/>
          </parameter>
          <parameter name="data"
                     transfer-ownership="none"
                     nullable="1"
                     allow-none="1">
            <doc xml:space="preserve"
                 filename="dmap-db.h"
                 line="201">User data to pass to the function.</doc>
            <type name="gpointer" c:type="gpointer"/>
          </parameter>
        </parameters>
      </method>
      <method name="lookup_by_id" c:identifier="dmap_db_lookup_by_id">
        <source-position filename="dmap-db.h" line="184"/>
        <return-value transfer-ownership="full">
          <doc xml:space="preserve"
               filename="dmap-db.h"
               line="169">the database record corresponding to @id. @id
cannot be DMAP_DB_ID_BAD. The returned record should be unrefed by the
calling code when no longer required.

If you are implementing a full database using this API, then you
probably want to increment the reference count before returning a record
pointer.

On the other hand, if you are implementing an adapter class
and the records are stored elsewhere, then you will probably return a
transient record. That is, once the user is done using it, the returned
record should be free'd because it is a adapter copy of the real record.
In this case, the reference count should not be incremented before
returning a record pointer.</doc>
          <type name="Record" c:type="DmapRecord*"/>
        </return-value>
        <parameters>
          <instance-parameter name="db" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="dmap-db.h"
                 line="166">A media database.</doc>
            <type name="Db" c:type="const DmapDb*"/>
          </instance-parameter>
          <parameter name="id" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="dmap-db.h"
                 line="167">A record ID.</doc>
            <type name="guint" c:type="guint"/>
          </parameter>
        </parameters>
      </method>
      <method name="lookup_id_by_location"
              c:identifier="dmap_db_lookup_id_by_location">
        <source-position filename="dmap-db.h" line="194"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="dmap-db.h"
               line="191">the database id for the record corresponding to @path or
DMAP_DB_ID_BAD if such a record does not exist.</doc>
          <type name="guint" c:type="guint"/>
        </return-value>
        <parameters>
          <instance-parameter name="db" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="dmap-db.h"
                 line="188">A media database.</doc>
            <type name="Db" c:type="const DmapDb*"/>
          </instance-parameter>
          <parameter name="location" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="dmap-db.h"
                 line="189">A record location.</doc>
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
        </parameters>
      </method>
    </interface>
    <record name="DbFilterDefinition" c:type="DmapDbFilterDefinition">
      <source-position filename="dmap-db.h" line="114"/>
      <field name="key" writable="1">
        <type name="utf8" c:type="gchar*"/>
      </field>
      <field name="value" writable="1">
        <type name="utf8" c:type="gchar*"/>
      </field>
      <field name="negate" writable="1">
        <type name="gboolean" c:type="gboolean"/>
      </field>
    </record>
    <enumeration name="DbId"
                 glib:type-name="DmapDbId"
                 glib:get-type="dmap_db_id_get_type"
                 c:type="DmapDbId">
      <doc xml:space="preserve"
           filename="dmap-db.h"
           line="71">Special DmapDb ID values.</doc>
      <member name="bad"
              value="0"
              c:identifier="DMAP_DB_ID_BAD"
              glib:nick="bad"
              glib:name="DMAP_DB_ID_BAD">
        <doc xml:space="preserve"
             filename="dmap-db.h"
             line="73">the value which represents a bad DmapDb ID.</doc>
      </member>
    </enumeration>
    <record name="DbInterface"
            c:type="DmapDbInterface"
            glib:is-gtype-struct-for="Db">
      <source-position filename="dmap-db.h" line="107"/>
      <field name="parent">
        <type name="GObject.TypeInterface" c:type="GTypeInterface"/>
      </field>
      <field name="add">
        <callback name="add" throws="1">
          <source-position filename="dmap-db.h" line="99"/>
          <return-value transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="dmap-db.h"
                 line="126">The ID for the newly added record or @DMAP_DB_ID_BAD on failure. A
reference to the record will be retained by the database (if required; an
adapter-type implementation might not want to retain a reference as the
record data may be placed elsewhere). In all cases, a returned record should
be unrefed by the calling code.</doc>
            <type name="guint" c:type="guint"/>
          </return-value>
          <parameters>
            <parameter name="db" transfer-ownership="none">
              <doc xml:space="preserve"
                   filename="dmap-db.h"
                   line="120">A media database.</doc>
              <type name="Db" c:type="DmapDb*"/>
            </parameter>
            <parameter name="record" transfer-ownership="none">
              <doc xml:space="preserve"
                   filename="dmap-db.h"
                   line="121">A database record.</doc>
              <type name="Record" c:type="DmapRecord*"/>
            </parameter>
          </parameters>
        </callback>
      </field>
      <field name="add_with_id">
        <callback name="add_with_id" throws="1">
          <source-position filename="dmap-db.h" line="100"/>
          <return-value transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="dmap-db.h"
                 line="144">The ID for the newly added record or DMAP_DB_ID_BAD on failure.

See also the notes for dmap_db_add regarding reference counting.</doc>
            <type name="guint" c:type="guint"/>
          </return-value>
          <parameters>
            <parameter name="db" transfer-ownership="none">
              <doc xml:space="preserve"
                   filename="dmap-db.h"
                   line="136">A media database.</doc>
              <type name="Db" c:type="DmapDb*"/>
            </parameter>
            <parameter name="record" transfer-ownership="none">
              <doc xml:space="preserve"
                   filename="dmap-db.h"
                   line="137">A database record.</doc>
              <type name="Record" c:type="DmapRecord*"/>
            </parameter>
            <parameter name="id" transfer-ownership="none">
              <doc xml:space="preserve"
                   filename="dmap-db.h"
                   line="138">A database record ID.</doc>
              <type name="guint" c:type="guint"/>
            </parameter>
          </parameters>
        </callback>
      </field>
      <field name="add_path">
        <callback name="add_path" throws="1">
          <source-position filename="dmap-db.h" line="101"/>
          <return-value transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="dmap-db.h"
                 line="158">The ID for the newly added record or DMAP_DB_ID_BAD on failure.

See also the notes for dmap_db_add regarding reference counting.</doc>
            <type name="guint" c:type="guint"/>
          </return-value>
          <parameters>
            <parameter name="db" transfer-ownership="none">
              <doc xml:space="preserve"
                   filename="dmap-db.h"
                   line="152">A media database.</doc>
              <type name="Db" c:type="DmapDb*"/>
            </parameter>
            <parameter name="path" transfer-ownership="none">
              <doc xml:space="preserve"
                   filename="dmap-db.h"
                   line="153">A path to an appropriate media file.</doc>
              <type name="utf8" c:type="const gchar*"/>
            </parameter>
          </parameters>
        </callback>
      </field>
      <field name="lookup_by_id">
        <callback name="lookup_by_id">
          <source-position filename="dmap-db.h" line="102"/>
          <return-value transfer-ownership="full">
            <doc xml:space="preserve"
                 filename="dmap-db.h"
                 line="169">the database record corresponding to @id. @id
cannot be DMAP_DB_ID_BAD. The returned record should be unrefed by the
calling code when no longer required.

If you are implementing a full database using this API, then you
probably want to increment the reference count before returning a record
pointer.

On the other hand, if you are implementing an adapter class
and the records are stored elsewhere, then you will probably return a
transient record. That is, once the user is done using it, the returned
record should be free'd because it is a adapter copy of the real record.
In this case, the reference count should not be incremented before
returning a record pointer.</doc>
            <type name="Record" c:type="DmapRecord*"/>
          </return-value>
          <parameters>
            <parameter name="db" transfer-ownership="none">
              <doc xml:space="preserve"
                   filename="dmap-db.h"
                   line="166">A media database.</doc>
              <type name="Db" c:type="const DmapDb*"/>
            </parameter>
            <parameter name="id" transfer-ownership="none">
              <doc xml:space="preserve"
                   filename="dmap-db.h"
                   line="167">A record ID.</doc>
              <type name="guint" c:type="guint"/>
            </parameter>
          </parameters>
        </callback>
      </field>
      <field name="lookup_id_by_location">
        <callback name="lookup_id_by_location">
          <source-position filename="dmap-db.h" line="103"/>
          <return-value transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="dmap-db.h"
                 line="191">the database id for the record corresponding to @path or
DMAP_DB_ID_BAD if such a record does not exist.</doc>
            <type name="guint" c:type="guint"/>
          </return-value>
          <parameters>
            <parameter name="db" transfer-ownership="none">
              <doc xml:space="preserve"
                   filename="dmap-db.h"
                   line="188">A media database.</doc>
              <type name="Db" c:type="const DmapDb*"/>
            </parameter>
            <parameter name="location" transfer-ownership="none">
              <doc xml:space="preserve"
                   filename="dmap-db.h"
                   line="189">A record location.</doc>
              <type name="utf8" c:type="const gchar*"/>
            </parameter>
          </parameters>
        </callback>
      </field>
      <field name="foreach">
        <callback name="foreach">
          <source-position filename="dmap-db.h" line="105"/>
          <return-value transfer-ownership="none">
            <type name="none" c:type="void"/>
          </return-value>
          <parameters>
            <parameter name="db" transfer-ownership="none">
              <doc xml:space="preserve"
                   filename="dmap-db.h"
                   line="199">A media database.</doc>
              <type name="Db" c:type="const DmapDb*"/>
            </parameter>
            <parameter name="func"
                       transfer-ownership="none"
                       scope="call"
                       closure="2">
              <doc xml:space="preserve"
                   filename="dmap-db.h"
                   line="200">The function to apply to each record in the database.</doc>
              <type name="IdRecordFunc" c:type="DmapIdRecordFunc"/>
            </parameter>
            <parameter name="data"
                       transfer-ownership="none"
                       nullable="1"
                       allow-none="1">
              <doc xml:space="preserve"
                   filename="dmap-db.h"
                   line="201">User data to pass to the function.</doc>
              <type name="gpointer" c:type="gpointer"/>
            </parameter>
          </parameters>
        </callback>
      </field>
      <field name="count">
        <callback name="count">
          <source-position filename="dmap-db.h" line="106"/>
          <return-value transfer-ownership="none">
            <type name="gint64" c:type="gint64"/>
          </return-value>
          <parameters>
            <parameter name="db" transfer-ownership="none">
              <type name="Db" c:type="const DmapDb*"/>
            </parameter>
          </parameters>
        </callback>
      </field>
    </record>
    <enumeration name="Error"
                 glib:type-name="DmapError"
                 glib:get-type="dmap_error_get_type"
                 c:type="DmapError"
                 glib:error-domain="dmap-error-quark">
      <doc xml:space="preserve"
           filename="dmap-error.h"
           line="40">Errors inside the libdmapsharing library.</doc>
      <member name="ok"
              value="0"
              c:identifier="DMAP_STATUS_OK"
              glib:nick="ok"
              glib:name="DMAP_STATUS_OK">
      </member>
      <member name="failed"
              value="1"
              c:identifier="DMAP_STATUS_FAILED"
              glib:nick="failed"
              glib:name="DMAP_STATUS_FAILED">
      </member>
      <member name="invalid_content_code"
              value="2"
              c:identifier="DMAP_STATUS_INVALID_CONTENT_CODE"
              glib:nick="invalid-content-code"
              glib:name="DMAP_STATUS_INVALID_CONTENT_CODE">
      </member>
      <member name="invalid_content_code_size"
              value="3"
              c:identifier="DMAP_STATUS_INVALID_CONTENT_CODE_SIZE"
              glib:nick="invalid-content-code-size"
              glib:name="DMAP_STATUS_INVALID_CONTENT_CODE_SIZE">
      </member>
      <member name="response_too_short"
              value="4"
              c:identifier="DMAP_STATUS_RESPONSE_TOO_SHORT"
              glib:nick="response-too-short"
              glib:name="DMAP_STATUS_RESPONSE_TOO_SHORT">
      </member>
      <member name="bad_format"
              value="5"
              c:identifier="DMAP_STATUS_BAD_FORMAT"
              glib:nick="bad-format"
              glib:name="DMAP_STATUS_BAD_FORMAT">
      </member>
      <member name="bad_browse_category"
              value="6"
              c:identifier="DMAP_STATUS_BAD_BROWSE_CATEGORY"
              glib:nick="bad-browse-category"
              glib:name="DMAP_STATUS_BAD_BROWSE_CATEGORY">
      </member>
      <member name="record_missing_field"
              value="7"
              c:identifier="DMAP_STATUS_RECORD_MISSING_FIELD"
              glib:nick="record-missing-field"
              glib:name="DMAP_STATUS_RECORD_MISSING_FIELD">
      </member>
      <member name="db_bad_id"
              value="8"
              c:identifier="DMAP_STATUS_DB_BAD_ID"
              glib:nick="db-bad-id"
              glib:name="DMAP_STATUS_DB_BAD_ID">
      </member>
      <member name="open_failed"
              value="9"
              c:identifier="DMAP_STATUS_OPEN_FAILED"
              glib:nick="open-failed"
              glib:name="DMAP_STATUS_OPEN_FAILED">
      </member>
      <member name="close_failed"
              value="10"
              c:identifier="DMAP_STATUS_CLOSE_FAILED"
              glib:nick="close-failed"
              glib:name="DMAP_STATUS_CLOSE_FAILED">
      </member>
      <member name="seek_failed"
              value="11"
              c:identifier="DMAP_STATUS_SEEK_FAILED"
              glib:nick="seek-failed"
              glib:name="DMAP_STATUS_SEEK_FAILED">
      </member>
      <member name="num_errors"
              value="12"
              c:identifier="DMAP_STATUS_NUM_ERRORS"
              glib:nick="num-errors"
              glib:name="DMAP_STATUS_NUM_ERRORS">
      </member>
      <function name="quark" c:identifier="dmap_error_quark">
        <return-value transfer-ownership="none">
          <type name="GLib.Quark" c:type="GQuark"/>
        </return-value>
      </function>
    </enumeration>
    <constant name="HASH_SIZE" value="16" c:type="DMAP_HASH_SIZE">
      <source-position filename="dmap-md5.h" line="26"/>
      <type name="gint" c:type="gint"/>
    </constant>
    <record name="HashContext" c:type="DmapHashContext">
      <source-position filename="dmap-md5.h" line="36"/>
      <field name="buf" writable="1">
        <array zero-terminated="0" fixed-size="4">
          <type name="guint32" c:type="guint32"/>
        </array>
      </field>
      <field name="bits" writable="1">
        <array zero-terminated="0" fixed-size="2">
          <type name="guint32" c:type="guint32"/>
        </array>
      </field>
      <field name="in" writable="1">
        <array zero-terminated="0" fixed-size="64">
          <type name="guint8" c:type="unsigned char"/>
        </array>
      </field>
      <field name="version" writable="1">
        <type name="gint" c:type="gint"/>
      </field>
    </record>
    <function-macro name="IMAGE_CONNECTION"
                    c:identifier="DMAP_IMAGE_CONNECTION"
                    introspectable="0">
      <doc xml:space="preserve"
           filename="dmap-image-connection.h"
           line="39">Casts a #DmapImageConnection or derived pointer into a (DmapImageConnection *) pointer.
Depending on the current debugging level, this function may invoke
certain runtime checks to identify invalid casts.</doc>
      <source-position filename="dmap-image-connection.h" line="47"/>
      <parameters>
        <parameter name="o">
          <doc xml:space="preserve"
               filename="dmap-image-connection.h"
               line="41">Object which is subject to casting.</doc>
        </parameter>
      </parameters>
    </function-macro>
    <function-macro name="IMAGE_CONNECTION_CLASS"
                    c:identifier="DMAP_IMAGE_CONNECTION_CLASS"
                    introspectable="0">
      <doc xml:space="preserve"
           filename="dmap-image-connection.h"
           line="48">Casts a derived #DmapImageConnectionClass structure into a #DmapImageConnectionClass
structure.</doc>
      <source-position filename="dmap-image-connection.h" line="55"/>
      <parameters>
        <parameter name="k">
          <doc xml:space="preserve"
               filename="dmap-image-connection.h"
               line="50">a valid #DmapImageConnectionClass</doc>
        </parameter>
      </parameters>
    </function-macro>
    <function-macro name="IMAGE_CONNECTION_GET_CLASS"
                    c:identifier="DMAP_IMAGE_CONNECTION_GET_CLASS"
                    introspectable="0">
      <doc xml:space="preserve"
           filename="dmap-image-connection.h"
           line="71">Get the class structure associated to a #DmapImageConnection instance.</doc>
      <source-position filename="dmap-image-connection.h" line="79"/>
      <parameters>
        <parameter name="o">
          <doc xml:space="preserve"
               filename="dmap-image-connection.h"
               line="73">a #DmapImageConnection instance.</doc>
        </parameter>
      </parameters>
    </function-macro>
    <function-macro name="IMAGE_RECORD"
                    c:identifier="DMAP_IMAGE_RECORD"
                    introspectable="0">
      <doc xml:space="preserve"
           filename="dmap-image-record.h"
           line="43">Casts a #DmapImageRecord or derived pointer into a (DmapImageRecord *) pointer.
Depending on the current debugging level, this function may invoke
certain runtime checks to identify invalid casts.</doc>
      <source-position filename="dmap-image-record.h" line="51"/>
      <parameters>
        <parameter name="o">
          <doc xml:space="preserve"
               filename="dmap-image-record.h"
               line="45">Object which is subject to casting.</doc>
        </parameter>
      </parameters>
    </function-macro>
    <function-macro name="IMAGE_RECORD_GET_INTERFACE"
                    c:identifier="DMAP_IMAGE_RECORD_GET_INTERFACE"
                    introspectable="0">
      <doc xml:space="preserve"
           filename="dmap-image-record.h"
           line="61">Get the class structure associated to a #DmapImageRecord instance.</doc>
      <source-position filename="dmap-image-record.h" line="69"/>
      <parameters>
        <parameter name="o">
          <doc xml:space="preserve"
               filename="dmap-image-record.h"
               line="63">a #DmapImageRecord instance.</doc>
        </parameter>
      </parameters>
    </function-macro>
    <function-macro name="IMAGE_SHARE"
                    c:identifier="DMAP_IMAGE_SHARE"
                    introspectable="0">
      <doc xml:space="preserve"
           filename="dmap-image-share.h"
           line="45">Casts a #DmapImageShare or derived pointer into a (DmapImageShare*) pointer.
Depending on the current debugging level, this function may invoke
certain runtime checks to identify invalid casts.</doc>
      <source-position filename="dmap-image-share.h" line="53"/>
      <parameters>
        <parameter name="o">
          <doc xml:space="preserve"
               filename="dmap-image-share.h"
               line="47">Object which is subject to casting.</doc>
        </parameter>
      </parameters>
    </function-macro>
    <function-macro name="IMAGE_SHARE_CLASS"
                    c:identifier="DMAP_IMAGE_SHARE_CLASS"
                    introspectable="0">
      <doc xml:space="preserve"
           filename="dmap-image-share.h"
           line="55">Casts a derived #DmapImageShareClass structure into a #DmapImageShareClass structure.</doc>
      <source-position filename="dmap-image-share.h" line="61"/>
      <parameters>
        <parameter name="k">
          <doc xml:space="preserve"
               filename="dmap-image-share.h"
               line="57">a valid #DmapImageShareClass</doc>
        </parameter>
      </parameters>
    </function-macro>
    <function-macro name="IMAGE_SHARE_GET_CLASS"
                    c:identifier="DMAP_IMAGE_SHARE_GET_CLASS"
                    introspectable="0">
      <doc xml:space="preserve"
           filename="dmap-image-share.h"
           line="79">Get the class structure associated to a #DmapImageShare instance.</doc>
      <source-position filename="dmap-image-share.h" line="87"/>
      <parameters>
        <parameter name="o">
          <doc xml:space="preserve"
               filename="dmap-image-share.h"
               line="81">a #DmapImageShare instance.</doc>
        </parameter>
      </parameters>
    </function-macro>
    <function-macro name="IS_AV_CONNECTION"
                    c:identifier="DMAP_IS_AV_CONNECTION"
                    introspectable="0">
      <doc xml:space="preserve"
           filename="dmap-av-connection.h"
           line="56">Checks whether a valid #GTypeInstance pointer is of type %DMAP_TYPE_AV_CONNECTION.</doc>
      <source-position filename="dmap-av-connection.h" line="62"/>
      <parameters>
        <parameter name="o">
          <doc xml:space="preserve"
               filename="dmap-av-connection.h"
               line="58">Instance to check for being a %DMAP_TYPE_AV_CONNECTION.</doc>
        </parameter>
      </parameters>
    </function-macro>
    <function-macro name="IS_AV_CONNECTION_CLASS"
                    c:identifier="DMAP_IS_AV_CONNECTION_CLASS"
                    introspectable="0">
      <doc xml:space="preserve"
           filename="dmap-av-connection.h"
           line="63">Checks whether @k "is a" valid #DmapAvConnectionClass structure of type
%DMAP_AV_CONNECTION or derived.</doc>
      <source-position filename="dmap-av-connection.h" line="70"/>
      <parameters>
        <parameter name="k">
          <doc xml:space="preserve"
               filename="dmap-av-connection.h"
               line="65">a #DmapAvConnectionClass</doc>
        </parameter>
      </parameters>
    </function-macro>
    <function-macro name="IS_AV_RECORD"
                    c:identifier="DMAP_IS_AV_RECORD"
                    introspectable="0">
      <doc xml:space="preserve"
           filename="dmap-av-record.h"
           line="54">Checks whether a valid #GTypeInstance pointer is of type %DMAP_TYPE_AV_RECORD.</doc>
      <source-position filename="dmap-av-record.h" line="60"/>
      <parameters>
        <parameter name="o">
          <doc xml:space="preserve"
               filename="dmap-av-record.h"
               line="56">Instance to check for being a %DMAP_TYPE_AV_RECORD.</doc>
        </parameter>
      </parameters>
    </function-macro>
    <function-macro name="IS_AV_SHARE"
                    c:identifier="DMAP_IS_AV_SHARE"
                    introspectable="0">
      <doc xml:space="preserve"
           filename="dmap-av-share.h"
           line="65">Checks whether a valid #GTypeInstance pointer is of type %DMAP_TYPE_AV_SHARE.</doc>
      <source-position filename="dmap-av-share.h" line="71"/>
      <parameters>
        <parameter name="o">
          <doc xml:space="preserve"
               filename="dmap-av-share.h"
               line="67">Instance to check for being a %DMAP_TYPE_AV_SHARE.</doc>
        </parameter>
      </parameters>
    </function-macro>
    <function-macro name="IS_AV_SHARE_CLASS"
                    c:identifier="DMAP_IS_AV_SHARE_CLASS"
                    introspectable="0">
      <doc xml:space="preserve"
           filename="dmap-av-share.h"
           line="73">Checks whether @k "is a" valid #DmapAvShareClass structure of type
%DMAP_AV_SHARE or derived.</doc>
      <source-position filename="dmap-av-share.h" line="80"/>
      <parameters>
        <parameter name="k">
          <doc xml:space="preserve"
               filename="dmap-av-share.h"
               line="75">a #DmapAvShareClass</doc>
        </parameter>
      </parameters>
    </function-macro>
    <function-macro name="IS_CONNECTION"
                    c:identifier="DMAP_IS_CONNECTION"
                    introspectable="0">
      <doc xml:space="preserve"
           filename="dmap-connection.h"
           line="70">Checks whether a valid #GTypeInstance pointer is of type %DMAP_TYPE_CONNECTION.</doc>
      <source-position filename="dmap-connection.h" line="76"/>
      <parameters>
        <parameter name="o">
          <doc xml:space="preserve"
               filename="dmap-connection.h"
               line="72">Instance to check for being a %DMAP_TYPE_CONNECTION.</doc>
        </parameter>
      </parameters>
    </function-macro>
    <function-macro name="IS_CONNECTION_CLASS"
                    c:identifier="DMAP_IS_CONNECTION_CLASS"
                    introspectable="0">
      <doc xml:space="preserve"
           filename="dmap-connection.h"
           line="77">Checks whether @k "is a" valid #DmapConnectionClass structure of type
%DMAP_CONNECTION or derived.</doc>
      <source-position filename="dmap-connection.h" line="84"/>
      <parameters>
        <parameter name="k">
          <doc xml:space="preserve"
               filename="dmap-connection.h"
               line="79">a #DmapConnectionClass</doc>
        </parameter>
      </parameters>
    </function-macro>
    <function-macro name="IS_CONTAINER_DB"
                    c:identifier="DMAP_IS_CONTAINER_DB"
                    introspectable="0">
      <doc xml:space="preserve"
           filename="dmap-container-db.h"
           line="52">Checks whether a valid #GTypeInstance pointer is of type
%DMAP_TYPE_CONTAINER_DB.</doc>
      <source-position filename="dmap-container-db.h" line="59"/>
      <parameters>
        <parameter name="o">
          <doc xml:space="preserve"
               filename="dmap-container-db.h"
               line="54">Instance to check for being a %DMAP_TYPE_CONTAINER_DB.</doc>
        </parameter>
      </parameters>
    </function-macro>
    <function-macro name="IS_CONTAINER_RECORD"
                    c:identifier="DMAP_IS_CONTAINER_RECORD"
                    introspectable="0">
      <doc xml:space="preserve"
           filename="dmap-container-record.h"
           line="51">Checks whether a valid #GTypeInstance pointer is of type
%DMAP_TYPE_CONTAINER_RECORD.</doc>
      <source-position filename="dmap-container-record.h" line="58"/>
      <parameters>
        <parameter name="o">
          <doc xml:space="preserve"
               filename="dmap-container-record.h"
               line="53">Instance to check for being a %DMAP_TYPE_CONTAINER_RECORD.</doc>
        </parameter>
      </parameters>
    </function-macro>
    <function-macro name="IS_CONTROL_CONNECTION"
                    c:identifier="DMAP_IS_CONTROL_CONNECTION"
                    introspectable="0">
      <doc xml:space="preserve"
           filename="dmap-control-connection.h"
           line="56">Checks whether a valid #GTypeInstance pointer is of type %DACP_TYPE_CONNECTION.</doc>
      <source-position filename="dmap-control-connection.h" line="62"/>
      <parameters>
        <parameter name="o">
          <doc xml:space="preserve"
               filename="dmap-control-connection.h"
               line="58">Instance to check for being a %DACP_TYPE_CONNECTION.</doc>
        </parameter>
      </parameters>
    </function-macro>
    <function-macro name="IS_CONTROL_CONNECTION_CLASS"
                    c:identifier="DMAP_IS_CONTROL_CONNECTION_CLASS"
                    introspectable="0">
      <doc xml:space="preserve"
           filename="dmap-control-connection.h"
           line="63">Checks whether @k "is a" valid #DmapControlConnectionClass structure of type
%DMAP_CONTROL_CONNECTION or derived.</doc>
      <source-position filename="dmap-control-connection.h" line="70"/>
      <parameters>
        <parameter name="k">
          <doc xml:space="preserve"
               filename="dmap-control-connection.h"
               line="65">a #DmapControlConnectionClass</doc>
        </parameter>
      </parameters>
    </function-macro>
    <function-macro name="IS_CONTROL_PLAYER"
                    c:identifier="DMAP_IS_CONTROL_PLAYER"
                    introspectable="0">
      <doc xml:space="preserve"
           filename="dmap-control-player.h"
           line="48">Checks whether a valid #GTypeInstance pointer is of type %DMAP_TYPE_CONTROL_PLAYER.</doc>
      <source-position filename="dmap-control-player.h" line="54"/>
      <parameters>
        <parameter name="o">
          <doc xml:space="preserve"
               filename="dmap-control-player.h"
               line="50">Instance to check for being a %DMAP_TYPE_CONTROL_PLAYER.</doc>
        </parameter>
      </parameters>
    </function-macro>
    <function-macro name="IS_CONTROL_SHARE"
                    c:identifier="DMAP_IS_CONTROL_SHARE"
                    introspectable="0">
      <doc xml:space="preserve"
           filename="dmap-control-share.h"
           line="65">Checks whether a valid #GTypeInstance pointer is of type %DMAP_TYPE_CONTROL_SHARE.</doc>
      <source-position filename="dmap-control-share.h" line="71"/>
      <parameters>
        <parameter name="o">
          <doc xml:space="preserve"
               filename="dmap-control-share.h"
               line="67">Instance to check for being a %DMAP_TYPE_CONTROL_SHARE.</doc>
        </parameter>
      </parameters>
    </function-macro>
    <function-macro name="IS_CONTROL_SHARE_CLASS"
                    c:identifier="DMAP_IS_CONTROL_SHARE_CLASS"
                    introspectable="0">
      <doc xml:space="preserve"
           filename="dmap-control-share.h"
           line="73">Checks whether @k "is a" valid #DmapControlShareClass structure of type
%DMAP_CONTROL_SHARE or derived.</doc>
      <source-position filename="dmap-control-share.h" line="80"/>
      <parameters>
        <parameter name="k">
          <doc xml:space="preserve"
               filename="dmap-control-share.h"
               line="75">a #DmapControlShareClass</doc>
        </parameter>
      </parameters>
    </function-macro>
    <function-macro name="IS_DB" c:identifier="DMAP_IS_DB" introspectable="0">
      <doc xml:space="preserve"
           filename="dmap-db.h"
           line="52">Checks whether a valid #GTypeInstance pointer is of type %DMAP_TYPE_DB.</doc>
      <source-position filename="dmap-db.h" line="58"/>
      <parameters>
        <parameter name="o">
          <doc xml:space="preserve"
               filename="dmap-db.h"
               line="54">Instance to check for being a %DMAP_TYPE_DB.</doc>
        </parameter>
      </parameters>
    </function-macro>
    <function-macro name="IS_IMAGE_CONNECTION"
                    c:identifier="DMAP_IS_IMAGE_CONNECTION"
                    introspectable="0">
      <doc xml:space="preserve"
           filename="dmap-image-connection.h"
           line="56">Checks whether a valid #GTypeInstance pointer is of type %DMAP_TYPE_IMAGE_CONNECTION.</doc>
      <source-position filename="dmap-image-connection.h" line="62"/>
      <parameters>
        <parameter name="o">
          <doc xml:space="preserve"
               filename="dmap-image-connection.h"
               line="58">Instance to check for being a %DMAP_TYPE_IMAGE_CONNECTION.</doc>
        </parameter>
      </parameters>
    </function-macro>
    <function-macro name="IS_IMAGE_CONNECTION_CLASS"
                    c:identifier="DMAP_IS_IMAGE_CONNECTION_CLASS"
                    introspectable="0">
      <doc xml:space="preserve"
           filename="dmap-image-connection.h"
           line="63">Checks whether @k "is a" valid #DmapImageConnectionClass structure of type
%DMAP_IMAGE_CONNECTION or derived.</doc>
      <source-position filename="dmap-image-connection.h" line="70"/>
      <parameters>
        <parameter name="k">
          <doc xml:space="preserve"
               filename="dmap-image-connection.h"
               line="65">a #DmapImageConnectionClass</doc>
        </parameter>
      </parameters>
    </function-macro>
    <function-macro name="IS_IMAGE_RECORD"
                    c:identifier="DMAP_IS_IMAGE_RECORD"
                    introspectable="0">
      <doc xml:space="preserve"
           filename="dmap-image-record.h"
           line="53">Checks whether a valid #GTypeInstance pointer is of type %DMAP_TYPE_IMAGE_RECORD.</doc>
      <source-position filename="dmap-image-record.h" line="59"/>
      <parameters>
        <parameter name="o">
          <doc xml:space="preserve"
               filename="dmap-image-record.h"
               line="55">Instance to check for being a %DMAP_TYPE_IMAGE_RECORD.</doc>
        </parameter>
      </parameters>
    </function-macro>
    <function-macro name="IS_IMAGE_SHARE"
                    c:identifier="DMAP_IS_IMAGE_SHARE"
                    introspectable="0">
      <doc xml:space="preserve"
           filename="dmap-image-share.h"
           line="63">Checks whether a valid #GTypeInstance pointer is of type %DMAP_TYPE_IMAGE_SHARE.</doc>
      <source-position filename="dmap-image-share.h" line="69"/>
      <parameters>
        <parameter name="o">
          <doc xml:space="preserve"
               filename="dmap-image-share.h"
               line="65">Instance to check for being a %DMAP_TYPE_IMAGE_SHARE.</doc>
        </parameter>
      </parameters>
    </function-macro>
    <function-macro name="IS_IMAGE_SHARE_CLASS"
                    c:identifier="DMAP_IS_IMAGE_SHARE_CLASS"
                    introspectable="0">
      <doc xml:space="preserve"
           filename="dmap-image-share.h"
           line="71">Checks whether @k "is a" valid #DmapImageShareClass structure of type
%DMAP_IMAGE_SHARE or derived.</doc>
      <source-position filename="dmap-image-share.h" line="78"/>
      <parameters>
        <parameter name="k">
          <doc xml:space="preserve"
               filename="dmap-image-share.h"
               line="73">a #DmapImageShareClass</doc>
        </parameter>
      </parameters>
    </function-macro>
    <function-macro name="IS_MDNS_BROWSER"
                    c:identifier="DMAP_IS_MDNS_BROWSER"
                    introspectable="0">
      <doc xml:space="preserve"
           filename="dmap-mdns-browser.h"
           line="60">Checks whether a valid #GTypeInstance pointer is of type %DAAP_TYPE_MDNS_BROWSER.</doc>
      <source-position filename="dmap-mdns-browser.h" line="66"/>
      <parameters>
        <parameter name="o">
          <doc xml:space="preserve"
               filename="dmap-mdns-browser.h"
               line="62">Instance to check for being a %DMAP_TYPE_MDNS_BROWSER.</doc>
        </parameter>
      </parameters>
    </function-macro>
    <function-macro name="IS_MDNS_BROWSER_CLASS"
                    c:identifier="DMAP_IS_MDNS_BROWSER_CLASS"
                    introspectable="0">
      <doc xml:space="preserve"
           filename="dmap-mdns-browser.h"
           line="67">Checks whether @k "is a" valid #DmapMdnsBrowserClass structure of type
%DMAP_MDNS_BROWSER or derived.</doc>
      <source-position filename="dmap-mdns-browser.h" line="74"/>
      <parameters>
        <parameter name="k">
          <doc xml:space="preserve"
               filename="dmap-mdns-browser.h"
               line="69">a #DmapMdnsBrowserClass</doc>
        </parameter>
      </parameters>
    </function-macro>
    <function-macro name="IS_MDNS_PUBLISHER"
                    c:identifier="DMAP_IS_MDNS_PUBLISHER"
                    introspectable="0">
      <source-position filename="dmap-mdns-publisher.h" line="34"/>
      <parameters>
        <parameter name="o">
        </parameter>
      </parameters>
    </function-macro>
    <function-macro name="IS_MDNS_PUBLISHER_CLASS"
                    c:identifier="DMAP_IS_MDNS_PUBLISHER_CLASS"
                    introspectable="0">
      <source-position filename="dmap-mdns-publisher.h" line="35"/>
      <parameters>
        <parameter name="k">
        </parameter>
      </parameters>
    </function-macro>
    <function-macro name="IS_MDNS_SERVICE"
                    c:identifier="DMAP_IS_MDNS_SERVICE"
                    introspectable="0">
      <doc xml:space="preserve"
           filename="dmap-mdns-service.h"
           line="55">Checks whether a valid #GTypeInstance pointer is of type %DAAP_TYPE_MDNS_SERVICE.</doc>
      <source-position filename="dmap-mdns-service.h" line="61"/>
      <parameters>
        <parameter name="o">
          <doc xml:space="preserve"
               filename="dmap-mdns-service.h"
               line="57">Instance to check for being a %DMAP_TYPE_MDNS_SERVICE.</doc>
        </parameter>
      </parameters>
    </function-macro>
    <function-macro name="IS_MDNS_SERVICE_CLASS"
                    c:identifier="DMAP_IS_MDNS_SERVICE_CLASS"
                    introspectable="0">
      <doc xml:space="preserve"
           filename="dmap-mdns-service.h"
           line="62">Checks whether @k "is a" valid #DmapMdnsServiceClass structure of type
%DMAP_MDNS_SERVICE or derived.</doc>
      <source-position filename="dmap-mdns-service.h" line="69"/>
      <parameters>
        <parameter name="k">
          <doc xml:space="preserve"
               filename="dmap-mdns-service.h"
               line="64">a #DmapMdnsServiceClass</doc>
        </parameter>
      </parameters>
    </function-macro>
    <function-macro name="IS_RECORD"
                    c:identifier="DMAP_IS_RECORD"
                    introspectable="0">
      <doc xml:space="preserve"
           filename="dmap-record.h"
           line="51">Checks whether a valid #GTypeInstance pointer is of type %DMAP_TYPE_RECORD.</doc>
      <source-position filename="dmap-record.h" line="57"/>
      <parameters>
        <parameter name="o">
          <doc xml:space="preserve"
               filename="dmap-record.h"
               line="53">Instance to check for being a %DMAP_TYPE_RECORD.</doc>
        </parameter>
      </parameters>
    </function-macro>
    <function-macro name="IS_RECORD_FACTORY"
                    c:identifier="DMAP_IS_RECORD_FACTORY"
                    introspectable="0">
      <doc xml:space="preserve"
           filename="dmap-record-factory.h"
           line="52">Checks whether a valid #GTypeInstance pointer is of type
%DMAP_TYPE_RECORD_FACTORY.</doc>
      <source-position filename="dmap-record-factory.h" line="59"/>
      <parameters>
        <parameter name="o">
          <doc xml:space="preserve"
               filename="dmap-record-factory.h"
               line="54">Instance to check for being a %DMAP_TYPE_RECORD_FACTORY.</doc>
        </parameter>
      </parameters>
    </function-macro>
    <function-macro name="IS_SHARE"
                    c:identifier="DMAP_IS_SHARE"
                    introspectable="0">
      <doc xml:space="preserve"
           filename="dmap-share.h"
           line="66">Checks whether a valid #GTypeInstance pointer is of type %DMAP_TYPE_SHARE.</doc>
      <source-position filename="dmap-share.h" line="72"/>
      <parameters>
        <parameter name="o">
          <doc xml:space="preserve"
               filename="dmap-share.h"
               line="68">Instance to check for being a %DMAP_TYPE_SHARE.</doc>
        </parameter>
      </parameters>
    </function-macro>
    <function-macro name="IS_SHARE_CLASS"
                    c:identifier="DMAP_IS_SHARE_CLASS"
                    introspectable="0">
      <doc xml:space="preserve"
           filename="dmap-share.h"
           line="74">Checks whether @k "is a" valid #DmapShareClass structure of type
%DMAP_SHARE or derived.</doc>
      <source-position filename="dmap-share.h" line="81"/>
      <parameters>
        <parameter name="k">
          <doc xml:space="preserve"
               filename="dmap-share.h"
               line="76">a #DmapShareClass</doc>
        </parameter>
      </parameters>
    </function-macro>
    <function-macro name="IS_TRANSCODE_STREAM"
                    c:identifier="DMAP_IS_TRANSCODE_STREAM"
                    introspectable="0">
      <source-position filename="dmap-transcode-stream.h" line="45"/>
      <parameters>
        <parameter name="o">
        </parameter>
      </parameters>
    </function-macro>
    <function-macro name="IS_TRANSCODE_STREAM_CLASS"
                    c:identifier="DMAP_IS_TRANSCODE_STREAM_CLASS"
                    introspectable="0">
      <source-position filename="dmap-transcode-stream.h" line="47"/>
      <parameters>
        <parameter name="k">
        </parameter>
      </parameters>
    </function-macro>
    <callback name="IdContainerRecordFunc" c:type="DmapIdContainerRecordFunc">
      <doc xml:space="preserve"
           filename="dmap-container-db.h"
           line="74">The type of function passed to dmap_container_db_foreach().</doc>
      <source-position filename="dmap-container-db.h" line="82"/>
      <return-value transfer-ownership="none">
        <type name="none" c:type="void"/>
      </return-value>
      <parameters>
        <parameter name="id" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="dmap-container-db.h"
               line="76">a DMAP container record ID</doc>
          <type name="guint" c:type="guint"/>
        </parameter>
        <parameter name="record" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="dmap-container-db.h"
               line="77">a #DmapContainerRecord</doc>
          <type name="ContainerRecord" c:type="DmapContainerRecord*"/>
        </parameter>
        <parameter name="user_data"
                   transfer-ownership="none"
                   nullable="1"
                   allow-none="1"
                   closure="2">
          <doc xml:space="preserve"
               filename="dmap-container-db.h"
               line="78">user data</doc>
          <type name="gpointer" c:type="gpointer"/>
        </parameter>
      </parameters>
    </callback>
    <callback name="IdRecordFunc" c:type="DmapIdRecordFunc">
      <doc xml:space="preserve"
           filename="dmap-db.h"
           line="85">The type of function passed to dmap_db_foreach().</doc>
      <source-position filename="dmap-db.h" line="93"/>
      <return-value transfer-ownership="none">
        <type name="none" c:type="void"/>
      </return-value>
      <parameters>
        <parameter name="id" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="dmap-db.h"
               line="87">a DMAP record ID</doc>
          <type name="guint" c:type="guint"/>
        </parameter>
        <parameter name="record" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="dmap-db.h"
               line="88">a #DmapRecord</doc>
          <type name="Record" c:type="DmapRecord*"/>
        </parameter>
        <parameter name="user_data"
                   transfer-ownership="none"
                   nullable="1"
                   allow-none="1"
                   closure="2">
          <doc xml:space="preserve"
               filename="dmap-db.h"
               line="89">user data</doc>
          <type name="gpointer" c:type="gpointer"/>
        </parameter>
      </parameters>
    </callback>
    <class name="ImageConnection"
           c:symbol-prefix="image_connection"
           c:type="DmapImageConnection"
           parent="Connection"
           glib:type-name="DmapImageConnection"
           glib:get-type="dmap_image_connection_get_type"
           glib:type-struct="ImageConnectionClass">
      <source-position filename="dmap-image-connection.h" line="84"/>
      <constructor name="new" c:identifier="dmap_image_connection_new">
        <source-position filename="dmap-image-connection.h" line="93"/>
        <return-value transfer-ownership="full">
          <type name="ImageConnection" c:type="DmapImageConnection*"/>
        </return-value>
        <parameters>
          <parameter name="name" transfer-ownership="none">
            <type name="utf8" c:type="const char*"/>
          </parameter>
          <parameter name="host" transfer-ownership="none">
            <type name="utf8" c:type="const char*"/>
          </parameter>
          <parameter name="port" transfer-ownership="none">
            <type name="guint" c:type="guint"/>
          </parameter>
          <parameter name="db" transfer-ownership="none">
            <type name="Db" c:type="DmapDb*"/>
          </parameter>
          <parameter name="factory" transfer-ownership="none">
            <type name="RecordFactory" c:type="DmapRecordFactory*"/>
          </parameter>
        </parameters>
      </constructor>
      <field name="dmap_connection_instance">
        <type name="Connection" c:type="DmapConnection"/>
      </field>
      <field name="priv">
        <type name="ImageConnectionPrivate"
              c:type="DmapImageConnectionPrivate*"/>
      </field>
    </class>
    <record name="ImageConnectionClass"
            c:type="DmapImageConnectionClass"
            glib:is-gtype-struct-for="ImageConnection">
      <source-position filename="dmap-image-connection.h" line="84"/>
      <field name="dmap_connection_class">
        <type name="ConnectionClass" c:type="DmapConnectionClass"/>
      </field>
    </record>
    <record name="ImageConnectionPrivate"
            c:type="DmapImageConnectionPrivate"
            disguised="1"
            opaque="1">
      <source-position filename="dmap-image-connection.h" line="80"/>
    </record>
    <interface name="ImageRecord"
               c:symbol-prefix="image_record"
               c:type="DmapImageRecord"
               glib:type-name="DmapImageRecord"
               glib:get-type="dmap_image_record_get_type"
               glib:type-struct="ImageRecordInterface">
      <source-position filename="dmap-image-record.h" line="79"/>
      <virtual-method name="read" invoker="read" throws="1">
        <source-position filename="dmap-image-record.h" line="78"/>
        <return-value transfer-ownership="full">
          <doc xml:space="preserve"
               filename="dmap-image-record.h"
               line="88">a GInputStream that provides read-only access to the data stream
associated with record.</doc>
          <type name="Gio.InputStream" c:type="GInputStream*"/>
        </return-value>
        <parameters>
          <instance-parameter name="record" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="dmap-image-record.h"
                 line="85">a DmapImageRecord.</doc>
            <type name="ImageRecord" c:type="DmapImageRecord*"/>
          </instance-parameter>
        </parameters>
      </virtual-method>
      <method name="read" c:identifier="dmap_image_record_read" throws="1">
        <source-position filename="dmap-image-record.h" line="91"/>
        <return-value transfer-ownership="full">
          <doc xml:space="preserve"
               filename="dmap-image-record.h"
               line="88">a GInputStream that provides read-only access to the data stream
associated with record.</doc>
          <type name="Gio.InputStream" c:type="GInputStream*"/>
        </return-value>
        <parameters>
          <instance-parameter name="record" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="dmap-image-record.h"
                 line="85">a DmapImageRecord.</doc>
            <type name="ImageRecord" c:type="DmapImageRecord*"/>
          </instance-parameter>
        </parameters>
      </method>
      <property name="aspect-ratio"
                writable="1"
                transfer-ownership="none"
                default-value="NULL">
        <type name="utf8" c:type="gchar*"/>
      </property>
      <property name="comments"
                writable="1"
                transfer-ownership="none"
                default-value="NULL">
        <type name="utf8" c:type="gchar*"/>
      </property>
      <property name="creation-date"
                writable="1"
                transfer-ownership="none"
                default-value="0">
        <type name="gint" c:type="gint"/>
      </property>
      <property name="filename"
                writable="1"
                transfer-ownership="none"
                default-value="NULL">
        <type name="utf8" c:type="gchar*"/>
      </property>
      <property name="format"
                writable="1"
                transfer-ownership="none"
                default-value="NULL">
        <type name="utf8" c:type="gchar*"/>
      </property>
      <property name="hash" writable="1" transfer-ownership="none">
        <array name="GLib.Array">
          <type name="gpointer" c:type="gpointer"/>
        </array>
      </property>
      <property name="large-filesize"
                writable="1"
                transfer-ownership="none"
                default-value="0">
        <type name="gint" c:type="gint"/>
      </property>
      <property name="location"
                writable="1"
                transfer-ownership="none"
                default-value="NULL">
        <type name="utf8" c:type="gchar*"/>
      </property>
      <property name="pixel-height"
                writable="1"
                transfer-ownership="none"
                default-value="0">
        <type name="gint" c:type="gint"/>
      </property>
      <property name="pixel-width"
                writable="1"
                transfer-ownership="none"
                default-value="0">
        <type name="gint" c:type="gint"/>
      </property>
      <property name="rating"
                writable="1"
                transfer-ownership="none"
                default-value="0">
        <type name="gint" c:type="gint"/>
      </property>
      <property name="thumbnail" writable="1" transfer-ownership="none">
        <array name="GLib.Array">
          <type name="gpointer" c:type="gpointer"/>
        </array>
      </property>
    </interface>
    <record name="ImageRecordInterface"
            c:type="DmapImageRecordInterface"
            glib:is-gtype-struct-for="ImageRecord">
      <source-position filename="dmap-image-record.h" line="79"/>
      <field name="parent">
        <type name="GObject.TypeInterface" c:type="GTypeInterface"/>
      </field>
      <field name="read">
        <callback name="read" throws="1">
          <source-position filename="dmap-image-record.h" line="78"/>
          <return-value transfer-ownership="full">
            <doc xml:space="preserve"
                 filename="dmap-image-record.h"
                 line="88">a GInputStream that provides read-only access to the data stream
associated with record.</doc>
            <type name="Gio.InputStream" c:type="GInputStream*"/>
          </return-value>
          <parameters>
            <parameter name="record" transfer-ownership="none">
              <doc xml:space="preserve"
                   filename="dmap-image-record.h"
                   line="85">a DmapImageRecord.</doc>
              <type name="ImageRecord" c:type="DmapImageRecord*"/>
            </parameter>
          </parameters>
        </callback>
      </field>
    </record>
    <class name="ImageShare"
           c:symbol-prefix="image_share"
           c:type="DmapImageShare"
           parent="Share"
           glib:type-name="DmapImageShare"
           glib:get-type="dmap_image_share_get_type"
           glib:type-struct="ImageShareClass">
      <source-position filename="dmap-image-share.h" line="93"/>
      <constructor name="new" c:identifier="dmap_image_share_new">
        <doc xml:space="preserve"
             filename="dmap-image-share.h"
             line="102">Creates a new DPAP share and publishes it using mDNS.</doc>
        <source-position filename="dmap-image-share.h" line="114"/>
        <return-value transfer-ownership="full">
          <doc xml:space="preserve"
               filename="dmap-image-share.h"
               line="112">a pointer to a DmapImageShare.</doc>
          <type name="ImageShare" c:type="DmapImageShare*"/>
        </return-value>
        <parameters>
          <parameter name="name" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="dmap-image-share.h"
                 line="104">The name that will be published by mDNS.</doc>
            <type name="utf8" c:type="const char*"/>
          </parameter>
          <parameter name="password"
                     transfer-ownership="none"
                     nullable="1"
                     allow-none="1">
            <doc xml:space="preserve"
                 filename="dmap-image-share.h"
                 line="105">A share password or NULL.</doc>
            <type name="utf8" c:type="const char*"/>
          </parameter>
          <parameter name="db"
                     transfer-ownership="none"
                     nullable="1"
                     allow-none="1">
            <doc xml:space="preserve"
                 filename="dmap-image-share.h"
                 line="106">A media database.</doc>
            <type name="gpointer" c:type="gpointer"/>
          </parameter>
          <parameter name="container_db"
                     transfer-ownership="none"
                     nullable="1"
                     allow-none="1">
            <doc xml:space="preserve"
                 filename="dmap-image-share.h"
                 line="107">A container (album) database.</doc>
            <type name="gpointer" c:type="gpointer"/>
          </parameter>
          <parameter name="transcode_mimetype"
                     transfer-ownership="none"
                     nullable="1"
                     allow-none="1">
            <doc xml:space="preserve"
                 filename="dmap-image-share.h"
                 line="108">A transcode mimetype or NULL.</doc>
            <type name="utf8" c:type="gchar*"/>
          </parameter>
        </parameters>
      </constructor>
      <field name="dmap_share_instance">
        <type name="Share" c:type="DmapShare"/>
      </field>
      <field name="priv">
        <type name="ImageSharePrivate" c:type="DmapImageSharePrivate*"/>
      </field>
    </class>
    <record name="ImageShareClass"
            c:type="DmapImageShareClass"
            glib:is-gtype-struct-for="ImageShare">
      <source-position filename="dmap-image-share.h" line="93"/>
      <field name="dmap_share_class">
        <type name="ShareClass" c:type="DmapShareClass"/>
      </field>
    </record>
    <record name="ImageSharePrivate"
            c:type="DmapImageSharePrivate"
            disguised="1"
            opaque="1">
      <source-position filename="dmap-image-share.h" line="89"/>
    </record>
    <function-macro name="MDNS_BROWSER"
                    c:identifier="DMAP_MDNS_BROWSER"
                    introspectable="0">
      <doc xml:space="preserve"
           filename="dmap-mdns-browser.h"
           line="44">Casts a #DmapMdnsBrowser or derived pointer into a (DmapMdnsBrowser *) pointer.
Depending on the current debugging level, this function may invoke
certain runtime checks to identify invalid casts.</doc>
      <source-position filename="dmap-mdns-browser.h" line="52"/>
      <parameters>
        <parameter name="o">
          <doc xml:space="preserve"
               filename="dmap-mdns-browser.h"
               line="46">Object which is subject to casting.</doc>
        </parameter>
      </parameters>
    </function-macro>
    <function-macro name="MDNS_BROWSER_CLASS"
                    c:identifier="DMAP_MDNS_BROWSER_CLASS"
                    introspectable="0">
      <doc xml:space="preserve"
           filename="dmap-mdns-browser.h"
           line="53">Casts a derived #DmapMdnsBrowserClass structure into a #DmapMdnsBrowserClass structure.</doc>
      <source-position filename="dmap-mdns-browser.h" line="59"/>
      <parameters>
        <parameter name="k">
          <doc xml:space="preserve"
               filename="dmap-mdns-browser.h"
               line="55">a valid #DmapMdnsBrowserClass</doc>
        </parameter>
      </parameters>
    </function-macro>
    <function-macro name="MDNS_BROWSER_GET_CLASS"
                    c:identifier="DMAP_MDNS_BROWSER_GET_CLASS"
                    introspectable="0">
      <doc xml:space="preserve"
           filename="dmap-mdns-browser.h"
           line="75">Get the class structure associated to a #DmapMdnsBrowser instance.</doc>
      <source-position filename="dmap-mdns-browser.h" line="83"/>
      <parameters>
        <parameter name="o">
          <doc xml:space="preserve"
               filename="dmap-mdns-browser.h"
               line="77">a #DmapMdnsBrowser instance.</doc>
        </parameter>
      </parameters>
    </function-macro>
    <function-macro name="MDNS_PUBLISHER"
                    c:identifier="DMAP_MDNS_PUBLISHER"
                    introspectable="0">
      <source-position filename="dmap-mdns-publisher.h" line="32"/>
      <parameters>
        <parameter name="o">
        </parameter>
      </parameters>
    </function-macro>
    <function-macro name="MDNS_PUBLISHER_CLASS"
                    c:identifier="DMAP_MDNS_PUBLISHER_CLASS"
                    introspectable="0">
      <source-position filename="dmap-mdns-publisher.h" line="33"/>
      <parameters>
        <parameter name="k">
        </parameter>
      </parameters>
    </function-macro>
    <function-macro name="MDNS_PUBLISHER_GET_CLASS"
                    c:identifier="DMAP_MDNS_PUBLISHER_GET_CLASS"
                    introspectable="0">
      <source-position filename="dmap-mdns-publisher.h" line="36"/>
      <parameters>
        <parameter name="o">
        </parameter>
      </parameters>
    </function-macro>
    <function-macro name="MDNS_SERVICE"
                    c:identifier="DMAP_MDNS_SERVICE"
                    introspectable="0">
      <doc xml:space="preserve"
           filename="dmap-mdns-service.h"
           line="39">Casts a #DmapMdnsService or derived pointer into a (DmapMdnsService *) pointer.
Depending on the current debugging level, this function may invoke
certain runtime checks to identify invalid casts.</doc>
      <source-position filename="dmap-mdns-service.h" line="47"/>
      <parameters>
        <parameter name="o">
          <doc xml:space="preserve"
               filename="dmap-mdns-service.h"
               line="41">Object which is subject to casting.</doc>
        </parameter>
      </parameters>
    </function-macro>
    <function-macro name="MDNS_SERVICE_CLASS"
                    c:identifier="DMAP_MDNS_SERVICE_CLASS"
                    introspectable="0">
      <doc xml:space="preserve"
           filename="dmap-mdns-service.h"
           line="48">Casts a derived #DmapMdnsServiceClass structure into a #DmapMdnsServiceClass structure.</doc>
      <source-position filename="dmap-mdns-service.h" line="54"/>
      <parameters>
        <parameter name="k">
          <doc xml:space="preserve"
               filename="dmap-mdns-service.h"
               line="50">a valid #DmapMdnsServiceClass</doc>
        </parameter>
      </parameters>
    </function-macro>
    <function-macro name="MDNS_SERVICE_GET_CLASS"
                    c:identifier="DMAP_MDNS_SERVICE_GET_CLASS"
                    introspectable="0">
      <doc xml:space="preserve"
           filename="dmap-mdns-service.h"
           line="70">Get the class structure associated to a #DmapMdnsService instance.</doc>
      <source-position filename="dmap-mdns-service.h" line="78"/>
      <parameters>
        <parameter name="o">
          <doc xml:space="preserve"
               filename="dmap-mdns-service.h"
               line="72">a #DmapMdnsService instance.</doc>
        </parameter>
      </parameters>
    </function-macro>
    <class name="MdnsBrowser"
           c:symbol-prefix="mdns_browser"
           c:type="DmapMdnsBrowser"
           parent="GObject.Object"
           glib:type-name="DmapMdnsBrowser"
           glib:get-type="dmap_mdns_browser_get_type"
           glib:type-struct="MdnsBrowserClass">
      <source-position filename="dmap-mdns-browser.h" line="105"/>
      <constructor name="new" c:identifier="dmap_mdns_browser_new">
        <doc xml:space="preserve"
             filename="dmap-mdns-browser.h"
             line="113">Creates a new mDNS browser.</doc>
        <source-position filename="dmap-mdns-browser.h" line="121"/>
        <return-value transfer-ownership="full">
          <doc xml:space="preserve"
               filename="dmap-mdns-browser.h"
               line="119">a pointer to a DmapMdnsBrowser.</doc>
          <type name="MdnsBrowser" c:type="DmapMdnsBrowser*"/>
        </return-value>
        <parameters>
          <parameter name="type" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="dmap-mdns-browser.h"
                 line="115">The type of service to browse.</doc>
            <type name="MdnsServiceType" c:type="DmapMdnsServiceType"/>
          </parameter>
        </parameters>
      </constructor>
      <virtual-method name="service_added">
        <source-position filename="dmap-mdns-browser.h" line="101"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="browser" transfer-ownership="none">
            <type name="MdnsBrowser" c:type="DmapMdnsBrowser*"/>
          </instance-parameter>
          <parameter name="service" transfer-ownership="none">
            <type name="MdnsService" c:type="DmapMdnsService*"/>
          </parameter>
        </parameters>
      </virtual-method>
      <virtual-method name="service_removed">
        <source-position filename="dmap-mdns-browser.h" line="103"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="browser" transfer-ownership="none">
            <type name="MdnsBrowser" c:type="DmapMdnsBrowser*"/>
          </instance-parameter>
          <parameter name="service" transfer-ownership="none">
            <type name="MdnsService" c:type="DmapMdnsService*"/>
          </parameter>
        </parameters>
      </virtual-method>
      <method name="get_service_type"
              c:identifier="dmap_mdns_browser_get_service_type">
        <source-position filename="dmap-mdns-browser.h" line="153"/>
        <return-value transfer-ownership="none">
          <type name="MdnsServiceType" c:type="DmapMdnsServiceType"/>
        </return-value>
        <parameters>
          <instance-parameter name="browser" transfer-ownership="none">
            <type name="MdnsBrowser" c:type="DmapMdnsBrowser*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_services"
              c:identifier="dmap_mdns_browser_get_services">
        <source-position filename="dmap-mdns-browser.h" line="151"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="dmap-mdns-browser.h"
               line="149">services available to @browser.</doc>
          <type name="GLib.SList" c:type="const GSList*">
            <type name="MdnsService"/>
          </type>
        </return-value>
        <parameters>
          <instance-parameter name="browser" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="dmap-mdns-browser.h"
                 line="147">A DmapMdnsBrowser.</doc>
            <type name="MdnsBrowser" c:type="DmapMdnsBrowser*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="start" c:identifier="dmap_mdns_browser_start" throws="1">
        <doc xml:space="preserve"
             filename="dmap-mdns-browser.h"
             line="123">Starts a DmapMdnsBrowser.</doc>
        <source-position filename="dmap-mdns-browser.h" line="132"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="dmap-mdns-browser.h"
               line="130">TRUE on success, else FALSE.</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <instance-parameter name="browser" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="dmap-mdns-browser.h"
                 line="125">A DmapMdnsBrowser.</doc>
            <type name="MdnsBrowser" c:type="DmapMdnsBrowser*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="stop" c:identifier="dmap_mdns_browser_stop" throws="1">
        <doc xml:space="preserve"
             filename="dmap-mdns-browser.h"
             line="134">Stops a DmapMdnsBrowser.</doc>
        <source-position filename="dmap-mdns-browser.h" line="143"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="dmap-mdns-browser.h"
               line="141">TRUE on success, else FALSE.</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <instance-parameter name="browser" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="dmap-mdns-browser.h"
                 line="136">A DmapMdnsBrowser.</doc>
            <type name="MdnsBrowser" c:type="DmapMdnsBrowser*"/>
          </instance-parameter>
        </parameters>
      </method>
      <field name="object">
        <type name="GObject.Object" c:type="GObject"/>
      </field>
      <field name="priv">
        <type name="MdnsBrowserPrivate" c:type="DmapMdnsBrowserPrivate*"/>
      </field>
      <glib:signal name="service-added" when="last">
        <doc xml:space="preserve"
             filename="dmap-mdns-browser.h"
             line="156">Emitted each time a service becomes available to @browser</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <parameter name="service" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="dmap-mdns-browser.h"
                 line="159">#DmapMdnsService</doc>
            <type name="MdnsService"/>
          </parameter>
        </parameters>
      </glib:signal>
      <glib:signal name="service-removed" when="last">
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <parameter name="object" transfer-ownership="none">
            <type name="utf8" c:type="gchar*"/>
          </parameter>
        </parameters>
      </glib:signal>
    </class>
    <record name="MdnsBrowserClass"
            c:type="DmapMdnsBrowserClass"
            glib:is-gtype-struct-for="MdnsBrowser">
      <source-position filename="dmap-mdns-browser.h" line="105"/>
      <field name="parent_class">
        <type name="GObject.ObjectClass" c:type="GObjectClass"/>
      </field>
      <field name="service_added">
        <callback name="service_added">
          <source-position filename="dmap-mdns-browser.h" line="101"/>
          <return-value transfer-ownership="none">
            <type name="none" c:type="void"/>
          </return-value>
          <parameters>
            <parameter name="browser" transfer-ownership="none">
              <type name="MdnsBrowser" c:type="DmapMdnsBrowser*"/>
            </parameter>
            <parameter name="service" transfer-ownership="none">
              <type name="MdnsService" c:type="DmapMdnsService*"/>
            </parameter>
          </parameters>
        </callback>
      </field>
      <field name="service_removed">
        <callback name="service_removed">
          <source-position filename="dmap-mdns-browser.h" line="103"/>
          <return-value transfer-ownership="none">
            <type name="none" c:type="void"/>
          </return-value>
          <parameters>
            <parameter name="browser" transfer-ownership="none">
              <type name="MdnsBrowser" c:type="DmapMdnsBrowser*"/>
            </parameter>
            <parameter name="service" transfer-ownership="none">
              <type name="MdnsService" c:type="DmapMdnsService*"/>
            </parameter>
          </parameters>
        </callback>
      </field>
    </record>
    <enumeration name="MdnsBrowserError"
                 glib:type-name="DmapMdnsBrowserError"
                 glib:get-type="dmap_mdns_browser_error_get_type"
                 c:type="DmapMdnsBrowserError"
                 glib:error-domain="dmap_mdns_browser_error">
      <member name="not_running"
              value="0"
              c:identifier="DMAP_MDNS_BROWSER_ERROR_NOT_RUNNING"
              glib:nick="not-running"
              glib:name="DMAP_MDNS_BROWSER_ERROR_NOT_RUNNING">
      </member>
      <member name="failed"
              value="1"
              c:identifier="DMAP_MDNS_BROWSER_ERROR_FAILED"
              glib:nick="failed"
              glib:name="DMAP_MDNS_BROWSER_ERROR_FAILED">
      </member>
      <function name="quark" c:identifier="dmap_mdns_browser_error_quark">
        <return-value transfer-ownership="none">
          <type name="GLib.Quark" c:type="GQuark"/>
        </return-value>
      </function>
    </enumeration>
    <record name="MdnsBrowserPrivate"
            c:type="DmapMdnsBrowserPrivate"
            disguised="1"
            opaque="1">
      <source-position filename="dmap-mdns-browser.h" line="85"/>
    </record>
    <class name="MdnsPublisher"
           c:symbol-prefix="mdns_publisher"
           c:type="DmapMdnsPublisher"
           parent="GObject.Object"
           glib:type-name="DmapMdnsPublisher"
           glib:get-type="dmap_mdns_publisher_get_type"
           glib:type-struct="MdnsPublisherClass">
      <source-position filename="dmap-mdns-publisher.h" line="51"/>
      <constructor name="new" c:identifier="dmap_mdns_publisher_new">
        <source-position filename="dmap-mdns-publisher.h" line="64"/>
        <return-value transfer-ownership="full">
          <type name="MdnsPublisher" c:type="DmapMdnsPublisher*"/>
        </return-value>
      </constructor>
      <virtual-method name="name_collision">
        <source-position filename="dmap-mdns-publisher.h" line="49"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="publisher" transfer-ownership="none">
            <type name="MdnsPublisher" c:type="DmapMdnsPublisher*"/>
          </instance-parameter>
          <parameter name="name" transfer-ownership="none">
            <type name="utf8" c:type="const char*"/>
          </parameter>
        </parameters>
      </virtual-method>
      <virtual-method name="published">
        <source-position filename="dmap-mdns-publisher.h" line="48"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="publisher" transfer-ownership="none">
            <type name="MdnsPublisher" c:type="DmapMdnsPublisher*"/>
          </instance-parameter>
          <parameter name="name" transfer-ownership="none">
            <type name="utf8" c:type="const char*"/>
          </parameter>
        </parameters>
      </virtual-method>
      <method name="publish"
              c:identifier="dmap_mdns_publisher_publish"
              throws="1">
        <source-position filename="dmap-mdns-publisher.h" line="65"/>
        <return-value transfer-ownership="none">
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <instance-parameter name="publisher" transfer-ownership="none">
            <type name="MdnsPublisher" c:type="DmapMdnsPublisher*"/>
          </instance-parameter>
          <parameter name="name" transfer-ownership="none">
            <type name="utf8" c:type="const char*"/>
          </parameter>
          <parameter name="port" transfer-ownership="none">
            <type name="guint" c:type="guint"/>
          </parameter>
          <parameter name="type_of_service" transfer-ownership="none">
            <type name="utf8" c:type="const char*"/>
          </parameter>
          <parameter name="password_required" transfer-ownership="none">
            <type name="gboolean" c:type="gboolean"/>
          </parameter>
          <parameter name="txt_records" transfer-ownership="none">
            <type name="utf8" c:type="gchar**"/>
          </parameter>
        </parameters>
      </method>
      <method name="rename_at_port"
              c:identifier="dmap_mdns_publisher_rename_at_port"
              throws="1">
        <source-position filename="dmap-mdns-publisher.h" line="71"/>
        <return-value transfer-ownership="none">
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <instance-parameter name="publisher" transfer-ownership="none">
            <type name="MdnsPublisher" c:type="DmapMdnsPublisher*"/>
          </instance-parameter>
          <parameter name="port" transfer-ownership="none">
            <type name="guint" c:type="guint"/>
          </parameter>
          <parameter name="name" transfer-ownership="none">
            <type name="utf8" c:type="const char*"/>
          </parameter>
        </parameters>
      </method>
      <method name="withdraw"
              c:identifier="dmap_mdns_publisher_withdraw"
              throws="1">
        <source-position filename="dmap-mdns-publisher.h" line="75"/>
        <return-value transfer-ownership="none">
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <instance-parameter name="publisher" transfer-ownership="none">
            <type name="MdnsPublisher" c:type="DmapMdnsPublisher*"/>
          </instance-parameter>
          <parameter name="port" transfer-ownership="none">
            <type name="guint" c:type="guint"/>
          </parameter>
        </parameters>
      </method>
      <field name="object">
        <type name="GObject.Object" c:type="GObject"/>
      </field>
      <field name="priv">
        <type name="MdnsPublisherPrivate" c:type="DmapMdnsPublisherPrivate*"/>
      </field>
      <glib:signal name="name-collision" when="last">
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <parameter name="object" transfer-ownership="none">
            <type name="utf8" c:type="gchar*"/>
          </parameter>
        </parameters>
      </glib:signal>
      <glib:signal name="published" when="last">
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <parameter name="object" transfer-ownership="none">
            <type name="utf8" c:type="gchar*"/>
          </parameter>
        </parameters>
      </glib:signal>
    </class>
    <record name="MdnsPublisherClass"
            c:type="DmapMdnsPublisherClass"
            glib:is-gtype-struct-for="MdnsPublisher">
      <source-position filename="dmap-mdns-publisher.h" line="51"/>
      <field name="parent_class">
        <type name="GObject.ObjectClass" c:type="GObjectClass"/>
      </field>
      <field name="published">
        <callback name="published">
          <source-position filename="dmap-mdns-publisher.h" line="48"/>
          <return-value transfer-ownership="none">
            <type name="none" c:type="void"/>
          </return-value>
          <parameters>
            <parameter name="publisher" transfer-ownership="none">
              <type name="MdnsPublisher" c:type="DmapMdnsPublisher*"/>
            </parameter>
            <parameter name="name" transfer-ownership="none">
              <type name="utf8" c:type="const char*"/>
            </parameter>
          </parameters>
        </callback>
      </field>
      <field name="name_collision">
        <callback name="name_collision">
          <source-position filename="dmap-mdns-publisher.h" line="49"/>
          <return-value transfer-ownership="none">
            <type name="none" c:type="void"/>
          </return-value>
          <parameters>
            <parameter name="publisher" transfer-ownership="none">
              <type name="MdnsPublisher" c:type="DmapMdnsPublisher*"/>
            </parameter>
            <parameter name="name" transfer-ownership="none">
              <type name="utf8" c:type="const char*"/>
            </parameter>
          </parameters>
        </callback>
      </field>
    </record>
    <enumeration name="MdnsPublisherError"
                 glib:type-name="DmapMdnsPublisherError"
                 glib:get-type="dmap_mdns_publisher_error_get_type"
                 c:type="DmapMdnsPublisherError"
                 glib:error-domain="dmap_mdns_publisher_error">
      <member name="not_running"
              value="0"
              c:identifier="DMAP_MDNS_PUBLISHER_ERROR_NOT_RUNNING"
              glib:nick="not-running"
              glib:name="DMAP_MDNS_PUBLISHER_ERROR_NOT_RUNNING">
      </member>
      <member name="failed"
              value="1"
              c:identifier="DMAP_MDNS_PUBLISHER_ERROR_FAILED"
              glib:nick="failed"
              glib:name="DMAP_MDNS_PUBLISHER_ERROR_FAILED">
      </member>
      <function name="quark" c:identifier="dmap_mdns_publisher_error_quark">
        <return-value transfer-ownership="none">
          <type name="GLib.Quark" c:type="GQuark"/>
        </return-value>
      </function>
    </enumeration>
    <record name="MdnsPublisherPrivate"
            c:type="DmapMdnsPublisherPrivate"
            disguised="1"
            opaque="1">
      <source-position filename="dmap-mdns-publisher.h" line="37"/>
    </record>
    <class name="MdnsService"
           c:symbol-prefix="mdns_service"
           c:type="DmapMdnsService"
           parent="GObject.Object"
           glib:type-name="DmapMdnsService"
           glib:get-type="dmap_mdns_service_get_type"
           glib:type-struct="MdnsServiceClass">
      <source-position filename="dmap-mdns-service.h" line="121"/>
      <property name="host"
                writable="1"
                transfer-ownership="none"
                default-value="NULL">
        <type name="utf8" c:type="gchar*"/>
      </property>
      <property name="name"
                writable="1"
                transfer-ownership="none"
                default-value="NULL">
        <type name="utf8" c:type="gchar*"/>
      </property>
      <property name="pair"
                writable="1"
                transfer-ownership="none"
                default-value="NULL">
        <type name="utf8" c:type="gchar*"/>
      </property>
      <property name="password-protected"
                writable="1"
                transfer-ownership="none"
                default-value="FALSE">
        <type name="gboolean" c:type="gboolean"/>
      </property>
      <property name="port"
                writable="1"
                transfer-ownership="none"
                default-value="0">
        <type name="guint" c:type="guint"/>
      </property>
      <property name="service-name"
                writable="1"
                transfer-ownership="none"
                default-value="NULL">
        <type name="utf8" c:type="gchar*"/>
      </property>
      <property name="transport-protocol"
                writable="1"
                transfer-ownership="none"
                default-value="0">
        <type name="guint" c:type="guint"/>
      </property>
      <field name="object">
        <type name="GObject.Object" c:type="GObject"/>
      </field>
      <field name="priv">
        <type name="MdnsServicePrivate" c:type="DmapMdnsServicePrivate*"/>
      </field>
    </class>
    <record name="MdnsServiceClass"
            c:type="DmapMdnsServiceClass"
            glib:is-gtype-struct-for="MdnsService">
      <source-position filename="dmap-mdns-service.h" line="121"/>
      <field name="parent_class">
        <type name="GObject.ObjectClass" c:type="GObjectClass"/>
      </field>
    </record>
    <record name="MdnsServicePrivate"
            c:type="DmapMdnsServicePrivate"
            disguised="1"
            opaque="1">
      <source-position filename="dmap-mdns-service.h" line="80"/>
    </record>
    <enumeration name="MdnsServiceTransportProtocol"
                 glib:type-name="DmapMdnsServiceTransportProtocol"
                 glib:get-type="dmap_mdns_service_transport_protocol_get_type"
                 c:type="DmapMdnsServiceTransportProtocol">
      <member name="tcp"
              value="0"
              c:identifier="DMAP_MDNS_SERVICE_TRANSPORT_PROTOCOL_TCP"
              glib:nick="tcp"
              glib:name="DMAP_MDNS_SERVICE_TRANSPORT_PROTOCOL_TCP">
      </member>
      <member name="udp"
              value="1"
              c:identifier="DMAP_MDNS_SERVICE_TRANSPORT_PROTOCOL_UDP"
              glib:nick="udp"
              glib:name="DMAP_MDNS_SERVICE_TRANSPORT_PROTOCOL_UDP">
      </member>
      <member name="last"
              value="1"
              c:identifier="DMAP_MDNS_SERVICE_TRANSPORT_PROTOCOL_LAST"
              glib:nick="last"
              glib:name="DMAP_MDNS_SERVICE_TRANSPORT_PROTOCOL_LAST">
      </member>
    </enumeration>
    <enumeration name="MdnsServiceType"
                 glib:type-name="DmapMdnsServiceType"
                 glib:get-type="dmap_mdns_service_type_get_type"
                 c:type="DmapMdnsServiceType">
      <doc xml:space="preserve"
           filename="dmap-mdns-service.h"
           line="82">Enum values used to specify the service type.</doc>
      <member name="invalid"
              value="0"
              c:identifier="DMAP_MDNS_SERVICE_TYPE_INVALID"
              glib:nick="invalid"
              glib:name="DMAP_MDNS_SERVICE_TYPE_INVALID">
        <doc xml:space="preserve"
             filename="dmap-mdns-service.h"
             line="84">an invalid service type</doc>
      </member>
      <member name="daap"
              value="1"
              c:identifier="DMAP_MDNS_SERVICE_TYPE_DAAP"
              glib:nick="daap"
              glib:name="DMAP_MDNS_SERVICE_TYPE_DAAP">
        <doc xml:space="preserve"
             filename="dmap-mdns-service.h"
             line="85">a DAAP service type</doc>
      </member>
      <member name="dpap"
              value="2"
              c:identifier="DMAP_MDNS_SERVICE_TYPE_DPAP"
              glib:nick="dpap"
              glib:name="DMAP_MDNS_SERVICE_TYPE_DPAP">
        <doc xml:space="preserve"
             filename="dmap-mdns-service.h"
             line="86">a DPAP service type</doc>
      </member>
      <member name="dacp"
              value="3"
              c:identifier="DMAP_MDNS_SERVICE_TYPE_DACP"
              glib:nick="dacp"
              glib:name="DMAP_MDNS_SERVICE_TYPE_DACP">
        <doc xml:space="preserve"
             filename="dmap-mdns-service.h"
             line="87">a DACP service type</doc>
      </member>
      <member name="raop"
              value="4"
              c:identifier="DMAP_MDNS_SERVICE_TYPE_RAOP"
              glib:nick="raop"
              glib:name="DMAP_MDNS_SERVICE_TYPE_RAOP">
        <doc xml:space="preserve"
             filename="dmap-mdns-service.h"
             line="88">a RAOP service type</doc>
      </member>
      <member name="last"
              value="4"
              c:identifier="DMAP_MDNS_SERVICE_TYPE_LAST"
              glib:nick="last"
              glib:name="DMAP_MDNS_SERVICE_TYPE_LAST">
        <doc xml:space="preserve"
             filename="dmap-mdns-service.h"
             line="89">an invalid service type</doc>
      </member>
    </enumeration>
    <enumeration name="MediaKind"
                 glib:type-name="DmapMediaKind"
                 glib:get-type="dmap_media_kind_get_type"
                 c:type="DmapMediaKind">
      <member name="music"
              value="1"
              c:identifier="DMAP_MEDIA_KIND_MUSIC"
              glib:nick="music"
              glib:name="DMAP_MEDIA_KIND_MUSIC">
      </member>
      <member name="movie"
              value="2"
              c:identifier="DMAP_MEDIA_KIND_MOVIE"
              glib:nick="movie"
              glib:name="DMAP_MEDIA_KIND_MOVIE">
      </member>
      <member name="podcast"
              value="32"
              c:identifier="DMAP_MEDIA_KIND_PODCAST"
              glib:nick="podcast"
              glib:name="DMAP_MEDIA_KIND_PODCAST">
      </member>
      <member name="tv_show"
              value="64"
              c:identifier="DMAP_MEDIA_KIND_TV_SHOW"
              glib:nick="tv-show"
              glib:name="DMAP_MEDIA_KIND_TV_SHOW">
      </member>
    </enumeration>
    <record name="MetaDataMap" c:type="DmapMetaDataMap">
      <source-position filename="dmap-share.h" line="169"/>
      <field name="tag" writable="1">
        <type name="utf8" c:type="gchar*"/>
      </field>
      <field name="md" writable="1">
        <type name="guint" c:type="guint"/>
      </field>
    </record>
    <record name="MlclBits" c:type="DmapMlclBits">
      <source-position filename="dmap-share.h" line="182"/>
      <field name="mlcl" writable="1">
        <type name="GLib.Node" c:type="GNode*"/>
      </field>
      <field name="bits" writable="1">
        <type name="Bits" c:type="DmapBits"/>
      </field>
      <field name="share" writable="1">
        <type name="Share" c:type="DmapShare*"/>
      </field>
    </record>
    <record name="Playlist" c:type="DmapPlaylist">
      <source-position filename="dmap-connection.h" line="45"/>
      <field name="name" writable="1">
        <type name="utf8" c:type="char*"/>
      </field>
      <field name="id" writable="1">
        <type name="gint" c:type="int"/>
      </field>
      <field name="uris" writable="1">
        <type name="GLib.List" c:type="GList*">
          <type name="gpointer" c:type="gpointer"/>
        </type>
      </field>
    </record>
    <function-macro name="RECORD"
                    c:identifier="DMAP_RECORD"
                    introspectable="0">
      <doc xml:space="preserve"
           filename="dmap-record.h"
           line="41">Casts a #DmapRecord or derived pointer into a (DmapRecord *) pointer.
Depending on the current debugging level, this function may invoke
certain runtime checks to identify invalid casts.</doc>
      <source-position filename="dmap-record.h" line="49"/>
      <parameters>
        <parameter name="o">
          <doc xml:space="preserve"
               filename="dmap-record.h"
               line="43">Object which is subject to casting.</doc>
        </parameter>
      </parameters>
    </function-macro>
    <function-macro name="RECORD_FACTORY"
                    c:identifier="DMAP_RECORD_FACTORY"
                    introspectable="0">
      <doc xml:space="preserve"
           filename="dmap-record-factory.h"
           line="42">Casts a #DmapRecordFactory or derived pointer into a (DmapRecordFactory *)
pointer. Depending on the current debugging level, this function may invoke
certain runtime checks to identify invalid casts.</doc>
      <source-position filename="dmap-record-factory.h" line="50"/>
      <parameters>
        <parameter name="o">
          <doc xml:space="preserve"
               filename="dmap-record-factory.h"
               line="44">Object which is subject to casting.</doc>
        </parameter>
      </parameters>
    </function-macro>
    <function-macro name="RECORD_FACTORY_GET_INTERFACE"
                    c:identifier="DMAP_RECORD_FACTORY_GET_INTERFACE"
                    introspectable="0">
      <doc xml:space="preserve"
           filename="dmap-record-factory.h"
           line="61">Get the interface structure associated to a #DmapRecordFactory instance.</doc>
      <source-position filename="dmap-record-factory.h" line="69"/>
      <parameters>
        <parameter name="o">
          <doc xml:space="preserve"
               filename="dmap-record-factory.h"
               line="63">a #DmapRecordFactory instance.</doc>
        </parameter>
      </parameters>
    </function-macro>
    <function-macro name="RECORD_GET_INTERFACE"
                    c:identifier="DMAP_RECORD_GET_INTERFACE"
                    introspectable="0">
      <doc xml:space="preserve"
           filename="dmap-record.h"
           line="59">Get the class structure associated to a #DmapAvRecord instance.</doc>
      <source-position filename="dmap-record.h" line="67"/>
      <parameters>
        <parameter name="o">
          <doc xml:space="preserve"
               filename="dmap-record.h"
               line="61">a #DmapAvRecord instance.</doc>
        </parameter>
      </parameters>
    </function-macro>
    <interface name="Record"
               c:symbol-prefix="record"
               c:type="DmapRecord"
               glib:type-name="DmapRecord"
               glib:get-type="dmap_record_get_type"
               glib:type-struct="RecordInterface">
      <source-position filename="dmap-record.h" line="76"/>
      <virtual-method name="set_from_blob" invoker="set_from_blob">
        <source-position filename="dmap-record.h" line="75"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="dmap-record.h"
               line="100">True on success, else false.</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <instance-parameter name="record" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="dmap-record.h"
                 line="97">The record to set.</doc>
            <type name="Record" c:type="DmapRecord*"/>
          </instance-parameter>
          <parameter name="blob" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="dmap-record.h"
                 line="98">A byte array representation of a record.</doc>
            <array name="GLib.Array" c:type="GArray*">
              <type name="guint8"/>
            </array>
          </parameter>
        </parameters>
      </virtual-method>
      <virtual-method name="to_blob" invoker="to_blob">
        <source-position filename="dmap-record.h" line="74"/>
        <return-value transfer-ownership="container">
          <doc xml:space="preserve"
               filename="dmap-record.h"
               line="91">A byte array representation of the record.</doc>
          <array name="GLib.Array" c:type="GArray*">
            <type name="guint8"/>
          </array>
        </return-value>
        <parameters>
          <instance-parameter name="record" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="dmap-record.h"
                 line="89">A DmapRecord.</doc>
            <type name="Record" c:type="DmapRecord*"/>
          </instance-parameter>
        </parameters>
      </virtual-method>
      <method name="set_from_blob" c:identifier="dmap_record_set_from_blob">
        <source-position filename="dmap-record.h" line="102"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="dmap-record.h"
               line="100">True on success, else false.</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <instance-parameter name="record" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="dmap-record.h"
                 line="97">The record to set.</doc>
            <type name="Record" c:type="DmapRecord*"/>
          </instance-parameter>
          <parameter name="blob" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="dmap-record.h"
                 line="98">A byte array representation of a record.</doc>
            <array name="GLib.Array" c:type="GArray*">
              <type name="guint8"/>
            </array>
          </parameter>
        </parameters>
      </method>
      <method name="to_blob" c:identifier="dmap_record_to_blob">
        <source-position filename="dmap-record.h" line="93"/>
        <return-value transfer-ownership="container">
          <doc xml:space="preserve"
               filename="dmap-record.h"
               line="91">A byte array representation of the record.</doc>
          <array name="GLib.Array" c:type="GArray*">
            <type name="guint8"/>
          </array>
        </return-value>
        <parameters>
          <instance-parameter name="record" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="dmap-record.h"
                 line="89">A DmapRecord.</doc>
            <type name="Record" c:type="DmapRecord*"/>
          </instance-parameter>
        </parameters>
      </method>
    </interface>
    <interface name="RecordFactory"
               c:symbol-prefix="record_factory"
               c:type="DmapRecordFactory"
               glib:type-name="DmapRecordFactory"
               glib:get-type="dmap_record_factory_get_type"
               glib:type-struct="RecordFactoryInterface">
      <source-position filename="dmap-record-factory.h" line="83"/>
      <virtual-method name="create" invoker="create" throws="1">
        <source-position filename="dmap-record-factory.h" line="80"/>
        <return-value transfer-ownership="full">
          <doc xml:space="preserve"
               filename="dmap-record-factory.h"
               line="93">a new DmapRecord, else NULL with error set.</doc>
          <type name="Record" c:type="DmapRecord*"/>
        </return-value>
        <parameters>
          <instance-parameter name="factory" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="dmap-record-factory.h"
                 line="89">A DmapRecordFactory.</doc>
            <type name="RecordFactory" c:type="DmapRecordFactory*"/>
          </instance-parameter>
          <parameter name="user_data"
                     transfer-ownership="none"
                     nullable="1"
                     allow-none="1"
                     closure="0">
            <doc xml:space="preserve"
                 filename="dmap-record-factory.h"
                 line="90">Some piece of data that may be used to initialize return value.</doc>
            <type name="gpointer" c:type="gpointer"/>
          </parameter>
        </parameters>
      </virtual-method>
      <method name="create"
              c:identifier="dmap_record_factory_create"
              throws="1">
        <source-position filename="dmap-record-factory.h" line="95"/>
        <return-value transfer-ownership="full">
          <doc xml:space="preserve"
               filename="dmap-record-factory.h"
               line="93">a new DmapRecord, else NULL with error set.</doc>
          <type name="Record" c:type="DmapRecord*"/>
        </return-value>
        <parameters>
          <instance-parameter name="factory" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="dmap-record-factory.h"
                 line="89">A DmapRecordFactory.</doc>
            <type name="RecordFactory" c:type="DmapRecordFactory*"/>
          </instance-parameter>
          <parameter name="user_data"
                     transfer-ownership="none"
                     nullable="1"
                     allow-none="1">
            <doc xml:space="preserve"
                 filename="dmap-record-factory.h"
                 line="90">Some piece of data that may be used to initialize return value.</doc>
            <type name="gpointer" c:type="gpointer"/>
          </parameter>
        </parameters>
      </method>
    </interface>
    <record name="RecordFactoryInterface"
            c:type="DmapRecordFactoryInterface"
            glib:is-gtype-struct-for="RecordFactory">
      <source-position filename="dmap-record-factory.h" line="83"/>
      <field name="parent">
        <type name="GObject.TypeInterface" c:type="GTypeInterface"/>
      </field>
      <field name="create">
        <callback name="create" throws="1">
          <source-position filename="dmap-record-factory.h" line="80"/>
          <return-value transfer-ownership="full">
            <doc xml:space="preserve"
                 filename="dmap-record-factory.h"
                 line="93">a new DmapRecord, else NULL with error set.</doc>
            <type name="Record" c:type="DmapRecord*"/>
          </return-value>
          <parameters>
            <parameter name="factory" transfer-ownership="none">
              <doc xml:space="preserve"
                   filename="dmap-record-factory.h"
                   line="89">A DmapRecordFactory.</doc>
              <type name="RecordFactory" c:type="DmapRecordFactory*"/>
            </parameter>
            <parameter name="user_data"
                       transfer-ownership="none"
                       nullable="1"
                       allow-none="1"
                       closure="1">
              <doc xml:space="preserve"
                   filename="dmap-record-factory.h"
                   line="90">Some piece of data that may be used to initialize return value.</doc>
              <type name="gpointer" c:type="gpointer"/>
            </parameter>
          </parameters>
        </callback>
      </field>
    </record>
    <record name="RecordInterface"
            c:type="DmapRecordInterface"
            glib:is-gtype-struct-for="Record">
      <source-position filename="dmap-record.h" line="76"/>
      <field name="parent">
        <type name="GObject.TypeInterface" c:type="GTypeInterface"/>
      </field>
      <field name="to_blob">
        <callback name="to_blob">
          <source-position filename="dmap-record.h" line="74"/>
          <return-value transfer-ownership="container">
            <doc xml:space="preserve"
                 filename="dmap-record.h"
                 line="91">A byte array representation of the record.</doc>
            <array name="GLib.Array" c:type="GArray*">
              <type name="guint8"/>
            </array>
          </return-value>
          <parameters>
            <parameter name="record" transfer-ownership="none">
              <doc xml:space="preserve"
                   filename="dmap-record.h"
                   line="89">A DmapRecord.</doc>
              <type name="Record" c:type="DmapRecord*"/>
            </parameter>
          </parameters>
        </callback>
      </field>
      <field name="set_from_blob">
        <callback name="set_from_blob">
          <source-position filename="dmap-record.h" line="75"/>
          <return-value transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="dmap-record.h"
                 line="100">True on success, else false.</doc>
            <type name="gboolean" c:type="gboolean"/>
          </return-value>
          <parameters>
            <parameter name="record" transfer-ownership="none">
              <doc xml:space="preserve"
                   filename="dmap-record.h"
                   line="97">The record to set.</doc>
              <type name="Record" c:type="DmapRecord*"/>
            </parameter>
            <parameter name="blob" transfer-ownership="none">
              <doc xml:space="preserve"
                   filename="dmap-record.h"
                   line="98">A byte array representation of a record.</doc>
              <array name="GLib.Array" c:type="GArray*">
                <type name="guint8"/>
              </array>
            </parameter>
          </parameters>
        </callback>
      </field>
    </record>
    <function-macro name="SHARE" c:identifier="DMAP_SHARE" introspectable="0">
      <doc xml:space="preserve"
           filename="dmap-share.h"
           line="48">Casts a #DmapShare or derived pointer into a (DmapShare*) pointer.
Depending on the current debugging level, this function may invoke
certain runtime checks to identify invalid casts.</doc>
      <source-position filename="dmap-share.h" line="56"/>
      <parameters>
        <parameter name="o">
          <doc xml:space="preserve"
               filename="dmap-share.h"
               line="50">Object which is subject to casting.</doc>
        </parameter>
      </parameters>
    </function-macro>
    <function-macro name="SHARE_CLASS"
                    c:identifier="DMAP_SHARE_CLASS"
                    introspectable="0">
      <doc xml:space="preserve"
           filename="dmap-share.h"
           line="58">Casts a derived #DmapShareClass structure into a #DmapShareClass structure.</doc>
      <source-position filename="dmap-share.h" line="64"/>
      <parameters>
        <parameter name="k">
          <doc xml:space="preserve"
               filename="dmap-share.h"
               line="60">a valid #DmapShareClass</doc>
        </parameter>
      </parameters>
    </function-macro>
    <function-macro name="SHARE_GET_CLASS"
                    c:identifier="DMAP_SHARE_GET_CLASS"
                    introspectable="0">
      <doc xml:space="preserve"
           filename="dmap-share.h"
           line="83">Get the class structure associated to a #DmapShare instance.</doc>
      <source-position filename="dmap-share.h" line="91"/>
      <parameters>
        <parameter name="o">
          <doc xml:space="preserve"
               filename="dmap-share.h"
               line="85">a #DmapShare instance.</doc>
        </parameter>
      </parameters>
    </function-macro>
    <class name="Share"
           c:symbol-prefix="share"
           c:type="DmapShare"
           parent="GObject.Object"
           abstract="1"
           glib:type-name="DmapShare"
           glib:get-type="dmap_share_get_type"
           glib:type-struct="ShareClass">
      <source-position filename="dmap-share.h" line="163"/>
      <function name="free_filter" c:identifier="dmap_share_free_filter">
        <doc xml:space="preserve"
             filename="dmap-share.h"
             line="209">Free the given filter list.</doc>
        <source-position filename="dmap-share.h" line="215"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <parameter name="filter" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="dmap-share.h"
                 line="211">The filter list to free.</doc>
            <type name="GLib.SList" c:type="GSList*">
              <type name="GLib.SList">
                <type name="gpointer" c:type="gpointer"/>
              </type>
            </type>
          </parameter>
        </parameters>
      </function>
      <virtual-method name="content_codes">
        <source-position filename="dmap-share.h" line="132"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="share" transfer-ownership="none">
            <type name="Share" c:type="DmapShare*"/>
          </instance-parameter>
          <parameter name="message" transfer-ownership="none">
            <type name="Soup.ServerMessage" c:type="SoupServerMessage*"/>
          </parameter>
          <parameter name="path" transfer-ownership="none">
            <type name="utf8" c:type="const char*"/>
          </parameter>
        </parameters>
      </virtual-method>
      <virtual-method name="ctrl_int">
        <source-position filename="dmap-share.h" line="145"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="share" transfer-ownership="none">
            <type name="Share" c:type="DmapShare*"/>
          </instance-parameter>
          <parameter name="message" transfer-ownership="none">
            <type name="Soup.ServerMessage" c:type="SoupServerMessage*"/>
          </parameter>
          <parameter name="path" transfer-ownership="none">
            <type name="utf8" c:type="const char*"/>
          </parameter>
          <parameter name="query" transfer-ownership="none">
            <type name="GLib.HashTable" c:type="GHashTable*">
              <type name="gpointer" c:type="gpointer"/>
              <type name="gpointer" c:type="gpointer"/>
            </type>
          </parameter>
        </parameters>
      </virtual-method>
      <virtual-method name="databases">
        <source-position filename="dmap-share.h" line="158"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="share" transfer-ownership="none">
            <type name="Share" c:type="DmapShare*"/>
          </instance-parameter>
          <parameter name="server" transfer-ownership="none">
            <type name="Soup.Server" c:type="SoupServer*"/>
          </parameter>
          <parameter name="message" transfer-ownership="none">
            <type name="Soup.ServerMessage" c:type="SoupServerMessage*"/>
          </parameter>
          <parameter name="path" transfer-ownership="none">
            <type name="utf8" c:type="const char*"/>
          </parameter>
          <parameter name="query" transfer-ownership="none">
            <type name="GLib.HashTable" c:type="GHashTable*">
              <type name="gpointer" c:type="gpointer"/>
              <type name="gpointer" c:type="gpointer"/>
            </type>
          </parameter>
        </parameters>
      </virtual-method>
      <virtual-method name="databases_browse_xxx">
        <source-position filename="dmap-share.h" line="118"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="share" transfer-ownership="none">
            <type name="Share" c:type="DmapShare*"/>
          </instance-parameter>
          <parameter name="msg" transfer-ownership="none">
            <type name="Soup.ServerMessage" c:type="SoupServerMessage*"/>
          </parameter>
          <parameter name="path" transfer-ownership="none">
            <type name="utf8" c:type="const char*"/>
          </parameter>
          <parameter name="query" transfer-ownership="none">
            <type name="GLib.HashTable" c:type="GHashTable*">
              <type name="gpointer" c:type="gpointer"/>
              <type name="gpointer" c:type="gpointer"/>
            </type>
          </parameter>
        </parameters>
      </virtual-method>
      <virtual-method name="databases_items_xxx">
        <source-position filename="dmap-share.h" line="122"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="share" transfer-ownership="none">
            <type name="Share" c:type="DmapShare*"/>
          </instance-parameter>
          <parameter name="server" transfer-ownership="none">
            <type name="Soup.Server" c:type="SoupServer*"/>
          </parameter>
          <parameter name="msg" transfer-ownership="none">
            <type name="Soup.ServerMessage" c:type="SoupServerMessage*"/>
          </parameter>
          <parameter name="path" transfer-ownership="none">
            <type name="utf8" c:type="const char*"/>
          </parameter>
        </parameters>
      </virtual-method>
      <virtual-method name="get_desired_port">
        <source-position filename="dmap-share.h" line="112"/>
        <return-value transfer-ownership="none">
          <type name="guint" c:type="guint"/>
        </return-value>
        <parameters>
          <instance-parameter name="share" transfer-ownership="none">
            <type name="Share" c:type="DmapShare*"/>
          </instance-parameter>
        </parameters>
      </virtual-method>
      <virtual-method name="get_meta_data_map">
        <source-position filename="dmap-share.h" line="116"/>
        <return-value transfer-ownership="none" nullable="1">
          <type name="gpointer" c:type="DmapMetaDataMap*"/>
        </return-value>
        <parameters>
          <instance-parameter name="share" transfer-ownership="none">
            <type name="Share" c:type="DmapShare*"/>
          </instance-parameter>
        </parameters>
      </virtual-method>
      <virtual-method name="get_type_of_service">
        <source-position filename="dmap-share.h" line="113"/>
        <return-value transfer-ownership="none">
          <type name="utf8" c:type="const char*"/>
        </return-value>
        <parameters>
          <instance-parameter name="share" transfer-ownership="none">
            <type name="Share" c:type="DmapShare*"/>
          </instance-parameter>
        </parameters>
      </virtual-method>
      <virtual-method name="login">
        <source-position filename="dmap-share.h" line="135"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="share" transfer-ownership="none">
            <type name="Share" c:type="DmapShare*"/>
          </instance-parameter>
          <parameter name="message" transfer-ownership="none">
            <type name="Soup.ServerMessage" c:type="SoupServerMessage*"/>
          </parameter>
          <parameter name="path" transfer-ownership="none">
            <type name="utf8" c:type="const char*"/>
          </parameter>
          <parameter name="query" transfer-ownership="none">
            <type name="GLib.HashTable" c:type="GHashTable*">
              <type name="gpointer" c:type="gpointer"/>
              <type name="gpointer" c:type="gpointer"/>
            </type>
          </parameter>
        </parameters>
      </virtual-method>
      <virtual-method name="logout">
        <source-position filename="dmap-share.h" line="139"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="share" transfer-ownership="none">
            <type name="Share" c:type="DmapShare*"/>
          </instance-parameter>
          <parameter name="message" transfer-ownership="none">
            <type name="Soup.ServerMessage" c:type="SoupServerMessage*"/>
          </parameter>
          <parameter name="path" transfer-ownership="none">
            <type name="utf8" c:type="const char*"/>
          </parameter>
          <parameter name="query" transfer-ownership="none">
            <type name="GLib.HashTable" c:type="GHashTable*">
              <type name="gpointer" c:type="gpointer"/>
              <type name="gpointer" c:type="gpointer"/>
            </type>
          </parameter>
        </parameters>
      </virtual-method>
      <virtual-method name="message_add_standard_headers">
        <source-position filename="dmap-share.h" line="114"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="share" transfer-ownership="none">
            <type name="Share" c:type="DmapShare*"/>
          </instance-parameter>
          <parameter name="msg" transfer-ownership="none">
            <type name="Soup.ServerMessage" c:type="SoupServerMessage*"/>
          </parameter>
        </parameters>
      </virtual-method>
      <virtual-method name="name_collision">
        <source-position filename="dmap-share.h" line="153"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="share" transfer-ownership="none">
            <type name="Share" c:type="DmapShare*"/>
          </instance-parameter>
          <parameter name="publisher" transfer-ownership="none">
            <type name="MdnsPublisher" c:type="DmapMdnsPublisher*"/>
          </parameter>
          <parameter name="name" transfer-ownership="none">
            <type name="utf8" c:type="const char*"/>
          </parameter>
        </parameters>
      </virtual-method>
      <virtual-method name="published">
        <source-position filename="dmap-share.h" line="149"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="share" transfer-ownership="none">
            <type name="Share" c:type="DmapShare*"/>
          </instance-parameter>
          <parameter name="publisher" transfer-ownership="none">
            <type name="MdnsPublisher" c:type="DmapMdnsPublisher*"/>
          </parameter>
          <parameter name="name" transfer-ownership="none">
            <type name="utf8" c:type="const char*"/>
          </parameter>
        </parameters>
      </virtual-method>
      <virtual-method name="server_info">
        <source-position filename="dmap-share.h" line="128"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="share" transfer-ownership="none">
            <type name="Share" c:type="DmapShare*"/>
          </instance-parameter>
          <parameter name="message" transfer-ownership="none">
            <type name="Soup.ServerMessage" c:type="SoupServerMessage*"/>
          </parameter>
          <parameter name="path" transfer-ownership="none">
            <type name="utf8" c:type="const char*"/>
          </parameter>
        </parameters>
      </virtual-method>
      <virtual-method name="update">
        <source-position filename="dmap-share.h" line="142"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="share" transfer-ownership="none">
            <type name="Share" c:type="DmapShare*"/>
          </instance-parameter>
          <parameter name="message" transfer-ownership="none">
            <type name="Soup.ServerMessage" c:type="SoupServerMessage*"/>
          </parameter>
          <parameter name="path" transfer-ownership="none">
            <type name="utf8" c:type="const char*"/>
          </parameter>
          <parameter name="query" transfer-ownership="none">
            <type name="GLib.HashTable" c:type="GHashTable*">
              <type name="gpointer" c:type="gpointer"/>
              <type name="gpointer" c:type="gpointer"/>
            </type>
          </parameter>
        </parameters>
      </virtual-method>
      <method name="emit_error"
              c:identifier="dmap_share_emit_error"
              introspectable="0">
        <source-position filename="dmap-share.h" line="224"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="share" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="dmap-share.h"
                 line="219">a #DmapShare instance.</doc>
            <type name="Share" c:type="DmapShare*"/>
          </instance-parameter>
          <parameter name="code" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="dmap-share.h"
                 line="220">error code.</doc>
            <type name="gint" c:type="gint"/>
          </parameter>
          <parameter name="format" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="dmap-share.h"
                 line="221">printf()-style format for error message</doc>
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
          <parameter name="..." transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="dmap-share.h"
                 line="222">parameters for message format</doc>
            <varargs/>
          </parameter>
        </parameters>
      </method>
      <method name="publish" c:identifier="dmap_share_publish" throws="1">
        <doc xml:space="preserve"
             filename="dmap-share.h"
             line="198">Publish the availability of the given share using mDNS-SD.</doc>
        <source-position filename="dmap-share.h" line="207"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="dmap-share.h"
               line="205">TRUE if publishing succeeds, else FALSE.</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <instance-parameter name="share" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="dmap-share.h"
                 line="200">a #DmapShare instance.</doc>
            <type name="Share" c:type="DmapShare*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="serve" c:identifier="dmap_share_serve" throws="1">
        <doc xml:space="preserve"
             filename="dmap-share.h"
             line="186">Begin serving the service defined by share. A program will normally also
call dmap_share_publish.</doc>
        <source-position filename="dmap-share.h" line="196"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="dmap-share.h"
               line="194">TRUE if serving succeeds, else FALSE with error set.</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <instance-parameter name="share" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="dmap-share.h"
                 line="188">a #DmapShare instance.</doc>
            <type name="Share" c:type="DmapShare*"/>
          </instance-parameter>
        </parameters>
      </method>
      <property name="auth-method"
                writable="1"
                transfer-ownership="none"
                default-value="0">
        <type name="guint" c:type="guint"/>
      </property>
      <property name="container-db"
                writable="1"
                construct-only="1"
                transfer-ownership="none">
        <type name="ContainerDb"/>
      </property>
      <property name="db"
                writable="1"
                construct-only="1"
                transfer-ownership="none">
        <type name="Db"/>
      </property>
      <property name="name"
                writable="1"
                transfer-ownership="none"
                default-value="NULL">
        <type name="utf8" c:type="gchar*"/>
      </property>
      <property name="password"
                writable="1"
                transfer-ownership="none"
                default-value="NULL">
        <type name="utf8" c:type="gchar*"/>
      </property>
      <property name="revision-number"
                writable="1"
                transfer-ownership="none"
                default-value="0">
        <type name="guint" c:type="guint"/>
      </property>
      <property name="server" transfer-ownership="none">
        <type name="Soup.Server"/>
      </property>
      <property name="transcode-mimetype"
                writable="1"
                construct-only="1"
                transfer-ownership="none"
                default-value="NULL">
        <type name="utf8" c:type="gchar*"/>
      </property>
      <property name="txt-records" writable="1" transfer-ownership="none">
        <array>
          <type name="utf8"/>
        </array>
      </property>
      <field name="parent">
        <type name="GObject.Object" c:type="GObject"/>
      </field>
      <field name="priv">
        <type name="SharePrivate" c:type="DmapSharePrivate*"/>
      </field>
      <glib:signal name="error" when="first">
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <parameter name="object"
                     transfer-ownership="none"
                     nullable="1"
                     allow-none="1">
            <type name="gpointer" c:type="gpointer"/>
          </parameter>
        </parameters>
      </glib:signal>
    </class>
    <enumeration name="ShareAuthMethod"
                 glib:type-name="DmapShareAuthMethod"
                 glib:get-type="dmap_share_auth_method_get_type"
                 c:type="DmapShareAuthMethod">
      <member name="none"
              value="0"
              c:identifier="DMAP_SHARE_AUTH_METHOD_NONE"
              glib:nick="none"
              glib:name="DMAP_SHARE_AUTH_METHOD_NONE">
      </member>
      <member name="name_and_password"
              value="1"
              c:identifier="DMAP_SHARE_AUTH_METHOD_NAME_AND_PASSWORD"
              glib:nick="name-and-password"
              glib:name="DMAP_SHARE_AUTH_METHOD_NAME_AND_PASSWORD">
      </member>
      <member name="password"
              value="2"
              c:identifier="DMAP_SHARE_AUTH_METHOD_PASSWORD"
              glib:nick="password"
              glib:name="DMAP_SHARE_AUTH_METHOD_PASSWORD">
      </member>
    </enumeration>
    <record name="ShareClass"
            c:type="DmapShareClass"
            glib:is-gtype-struct-for="Share">
      <source-position filename="dmap-share.h" line="163"/>
      <field name="parent">
        <type name="GObject.ObjectClass" c:type="GObjectClass"/>
      </field>
      <field name="get_desired_port">
        <callback name="get_desired_port">
          <source-position filename="dmap-share.h" line="112"/>
          <return-value transfer-ownership="none">
            <type name="guint" c:type="guint"/>
          </return-value>
          <parameters>
            <parameter name="share" transfer-ownership="none">
              <type name="Share" c:type="DmapShare*"/>
            </parameter>
          </parameters>
        </callback>
      </field>
      <field name="get_type_of_service">
        <callback name="get_type_of_service">
          <source-position filename="dmap-share.h" line="113"/>
          <return-value transfer-ownership="none">
            <type name="utf8" c:type="const char*"/>
          </return-value>
          <parameters>
            <parameter name="share" transfer-ownership="none">
              <type name="Share" c:type="DmapShare*"/>
            </parameter>
          </parameters>
        </callback>
      </field>
      <field name="message_add_standard_headers">
        <callback name="message_add_standard_headers">
          <source-position filename="dmap-share.h" line="114"/>
          <return-value transfer-ownership="none">
            <type name="none" c:type="void"/>
          </return-value>
          <parameters>
            <parameter name="share" transfer-ownership="none">
              <type name="Share" c:type="DmapShare*"/>
            </parameter>
            <parameter name="msg" transfer-ownership="none">
              <type name="Soup.ServerMessage" c:type="SoupServerMessage*"/>
            </parameter>
          </parameters>
        </callback>
      </field>
      <field name="get_meta_data_map">
        <callback name="get_meta_data_map">
          <source-position filename="dmap-share.h" line="116"/>
          <return-value transfer-ownership="none" nullable="1">
            <type name="gpointer" c:type="DmapMetaDataMap*"/>
          </return-value>
          <parameters>
            <parameter name="share" transfer-ownership="none">
              <type name="Share" c:type="DmapShare*"/>
            </parameter>
          </parameters>
        </callback>
      </field>
      <field name="add_entry_to_mlcl">
        <callback name="add_entry_to_mlcl">
          <source-position filename="dmap-share.h" line="117"/>
          <return-value transfer-ownership="none">
            <type name="none" c:type="void"/>
          </return-value>
          <parameters>
            <parameter name="id" transfer-ownership="none">
              <type name="guint" c:type="guint"/>
            </parameter>
            <parameter name="record" transfer-ownership="none">
              <type name="Record" c:type="DmapRecord*"/>
            </parameter>
            <parameter name="mb" transfer-ownership="none">
              <type name="gpointer" c:type="gpointer"/>
            </parameter>
          </parameters>
        </callback>
      </field>
      <field name="databases_browse_xxx">
        <callback name="databases_browse_xxx">
          <source-position filename="dmap-share.h" line="118"/>
          <return-value transfer-ownership="none">
            <type name="none" c:type="void"/>
          </return-value>
          <parameters>
            <parameter name="share" transfer-ownership="none">
              <type name="Share" c:type="DmapShare*"/>
            </parameter>
            <parameter name="msg" transfer-ownership="none">
              <type name="Soup.ServerMessage" c:type="SoupServerMessage*"/>
            </parameter>
            <parameter name="path" transfer-ownership="none">
              <type name="utf8" c:type="const char*"/>
            </parameter>
            <parameter name="query" transfer-ownership="none">
              <type name="GLib.HashTable" c:type="GHashTable*">
                <type name="gpointer" c:type="gpointer"/>
                <type name="gpointer" c:type="gpointer"/>
              </type>
            </parameter>
          </parameters>
        </callback>
      </field>
      <field name="databases_items_xxx">
        <callback name="databases_items_xxx">
          <source-position filename="dmap-share.h" line="122"/>
          <return-value transfer-ownership="none">
            <type name="none" c:type="void"/>
          </return-value>
          <parameters>
            <parameter name="share" transfer-ownership="none">
              <type name="Share" c:type="DmapShare*"/>
            </parameter>
            <parameter name="server" transfer-ownership="none">
              <type name="Soup.Server" c:type="SoupServer*"/>
            </parameter>
            <parameter name="msg" transfer-ownership="none">
              <type name="Soup.ServerMessage" c:type="SoupServerMessage*"/>
            </parameter>
            <parameter name="path" transfer-ownership="none">
              <type name="utf8" c:type="const char*"/>
            </parameter>
          </parameters>
        </callback>
      </field>
      <field name="server_info">
        <callback name="server_info">
          <source-position filename="dmap-share.h" line="128"/>
          <return-value transfer-ownership="none">
            <type name="none" c:type="void"/>
          </return-value>
          <parameters>
            <parameter name="share" transfer-ownership="none">
              <type name="Share" c:type="DmapShare*"/>
            </parameter>
            <parameter name="message" transfer-ownership="none">
              <type name="Soup.ServerMessage" c:type="SoupServerMessage*"/>
            </parameter>
            <parameter name="path" transfer-ownership="none">
              <type name="utf8" c:type="const char*"/>
            </parameter>
          </parameters>
        </callback>
      </field>
      <field name="content_codes">
        <callback name="content_codes">
          <source-position filename="dmap-share.h" line="132"/>
          <return-value transfer-ownership="none">
            <type name="none" c:type="void"/>
          </return-value>
          <parameters>
            <parameter name="share" transfer-ownership="none">
              <type name="Share" c:type="DmapShare*"/>
            </parameter>
            <parameter name="message" transfer-ownership="none">
              <type name="Soup.ServerMessage" c:type="SoupServerMessage*"/>
            </parameter>
            <parameter name="path" transfer-ownership="none">
              <type name="utf8" c:type="const char*"/>
            </parameter>
          </parameters>
        </callback>
      </field>
      <field name="login">
        <callback name="login">
          <source-position filename="dmap-share.h" line="135"/>
          <return-value transfer-ownership="none">
            <type name="none" c:type="void"/>
          </return-value>
          <parameters>
            <parameter name="share" transfer-ownership="none">
              <type name="Share" c:type="DmapShare*"/>
            </parameter>
            <parameter name="message" transfer-ownership="none">
              <type name="Soup.ServerMessage" c:type="SoupServerMessage*"/>
            </parameter>
            <parameter name="path" transfer-ownership="none">
              <type name="utf8" c:type="const char*"/>
            </parameter>
            <parameter name="query" transfer-ownership="none">
              <type name="GLib.HashTable" c:type="GHashTable*">
                <type name="gpointer" c:type="gpointer"/>
                <type name="gpointer" c:type="gpointer"/>
              </type>
            </parameter>
          </parameters>
        </callback>
      </field>
      <field name="logout">
        <callback name="logout">
          <source-position filename="dmap-share.h" line="139"/>
          <return-value transfer-ownership="none">
            <type name="none" c:type="void"/>
          </return-value>
          <parameters>
            <parameter name="share" transfer-ownership="none">
              <type name="Share" c:type="DmapShare*"/>
            </parameter>
            <parameter name="message" transfer-ownership="none">
              <type name="Soup.ServerMessage" c:type="SoupServerMessage*"/>
            </parameter>
            <parameter name="path" transfer-ownership="none">
              <type name="utf8" c:type="const char*"/>
            </parameter>
            <parameter name="query" transfer-ownership="none">
              <type name="GLib.HashTable" c:type="GHashTable*">
                <type name="gpointer" c:type="gpointer"/>
                <type name="gpointer" c:type="gpointer"/>
              </type>
            </parameter>
          </parameters>
        </callback>
      </field>
      <field name="update">
        <callback name="update">
          <source-position filename="dmap-share.h" line="142"/>
          <return-value transfer-ownership="none">
            <type name="none" c:type="void"/>
          </return-value>
          <parameters>
            <parameter name="share" transfer-ownership="none">
              <type name="Share" c:type="DmapShare*"/>
            </parameter>
            <parameter name="message" transfer-ownership="none">
              <type name="Soup.ServerMessage" c:type="SoupServerMessage*"/>
            </parameter>
            <parameter name="path" transfer-ownership="none">
              <type name="utf8" c:type="const char*"/>
            </parameter>
            <parameter name="query" transfer-ownership="none">
              <type name="GLib.HashTable" c:type="GHashTable*">
                <type name="gpointer" c:type="gpointer"/>
                <type name="gpointer" c:type="gpointer"/>
              </type>
            </parameter>
          </parameters>
        </callback>
      </field>
      <field name="ctrl_int">
        <callback name="ctrl_int">
          <source-position filename="dmap-share.h" line="145"/>
          <return-value transfer-ownership="none">
            <type name="none" c:type="void"/>
          </return-value>
          <parameters>
            <parameter name="share" transfer-ownership="none">
              <type name="Share" c:type="DmapShare*"/>
            </parameter>
            <parameter name="message" transfer-ownership="none">
              <type name="Soup.ServerMessage" c:type="SoupServerMessage*"/>
            </parameter>
            <parameter name="path" transfer-ownership="none">
              <type name="utf8" c:type="const char*"/>
            </parameter>
            <parameter name="query" transfer-ownership="none">
              <type name="GLib.HashTable" c:type="GHashTable*">
                <type name="gpointer" c:type="gpointer"/>
                <type name="gpointer" c:type="gpointer"/>
              </type>
            </parameter>
          </parameters>
        </callback>
      </field>
      <field name="published">
        <callback name="published">
          <source-position filename="dmap-share.h" line="149"/>
          <return-value transfer-ownership="none">
            <type name="none" c:type="void"/>
          </return-value>
          <parameters>
            <parameter name="share" transfer-ownership="none">
              <type name="Share" c:type="DmapShare*"/>
            </parameter>
            <parameter name="publisher" transfer-ownership="none">
              <type name="MdnsPublisher" c:type="DmapMdnsPublisher*"/>
            </parameter>
            <parameter name="name" transfer-ownership="none">
              <type name="utf8" c:type="const char*"/>
            </parameter>
          </parameters>
        </callback>
      </field>
      <field name="name_collision">
        <callback name="name_collision">
          <source-position filename="dmap-share.h" line="153"/>
          <return-value transfer-ownership="none">
            <type name="none" c:type="void"/>
          </return-value>
          <parameters>
            <parameter name="share" transfer-ownership="none">
              <type name="Share" c:type="DmapShare*"/>
            </parameter>
            <parameter name="publisher" transfer-ownership="none">
              <type name="MdnsPublisher" c:type="DmapMdnsPublisher*"/>
            </parameter>
            <parameter name="name" transfer-ownership="none">
              <type name="utf8" c:type="const char*"/>
            </parameter>
          </parameters>
        </callback>
      </field>
      <field name="databases">
        <callback name="databases">
          <source-position filename="dmap-share.h" line="158"/>
          <return-value transfer-ownership="none">
            <type name="none" c:type="void"/>
          </return-value>
          <parameters>
            <parameter name="share" transfer-ownership="none">
              <type name="Share" c:type="DmapShare*"/>
            </parameter>
            <parameter name="server" transfer-ownership="none">
              <type name="Soup.Server" c:type="SoupServer*"/>
            </parameter>
            <parameter name="message" transfer-ownership="none">
              <type name="Soup.ServerMessage" c:type="SoupServerMessage*"/>
            </parameter>
            <parameter name="path" transfer-ownership="none">
              <type name="utf8" c:type="const char*"/>
            </parameter>
            <parameter name="query" transfer-ownership="none">
              <type name="GLib.HashTable" c:type="GHashTable*">
                <type name="gpointer" c:type="gpointer"/>
                <type name="gpointer" c:type="gpointer"/>
              </type>
            </parameter>
          </parameters>
        </callback>
      </field>
    </record>
    <record name="SharePrivate"
            c:type="DmapSharePrivate"
            disguised="1"
            opaque="1">
      <source-position filename="dmap-share.h" line="93"/>
    </record>
    <function-macro name="TRANSCODE_STREAM"
                    c:identifier="DMAP_TRANSCODE_STREAM"
                    introspectable="0">
      <source-position filename="dmap-transcode-stream.h" line="39"/>
      <parameters>
        <parameter name="o">
        </parameter>
      </parameters>
    </function-macro>
    <function-macro name="TRANSCODE_STREAM_CLASS"
                    c:identifier="DMAP_TRANSCODE_STREAM_CLASS"
                    introspectable="0">
      <source-position filename="dmap-transcode-stream.h" line="42"/>
      <parameters>
        <parameter name="k">
        </parameter>
      </parameters>
    </function-macro>
    <function-macro name="TRANSCODE_STREAM_GET_CLASS"
                    c:identifier="DMAP_TRANSCODE_STREAM_GET_CLASS"
                    introspectable="0">
      <source-position filename="dmap-transcode-stream.h" line="49"/>
      <parameters>
        <parameter name="o">
        </parameter>
      </parameters>
    </function-macro>
    <class name="TranscodeStream"
           c:symbol-prefix="transcode_stream"
           c:type="DmapTranscodeStream"
           parent="Gio.InputStream"
           glib:type-name="DmapTranscodeStream"
           glib:get-type="dmap_transcode_stream_get_type"
           glib:type-struct="TranscodeStreamClass">
      <source-position filename="dmap-transcode-stream.h" line="63"/>
      <implements name="Gio.Seekable"/>
      <constructor name="new" c:identifier="dmap_transcode_stream_new">
        <source-position filename="dmap-transcode-stream.h" line="76"/>
        <return-value transfer-ownership="full">
          <type name="Gio.InputStream" c:type="GInputStream*"/>
        </return-value>
        <parameters>
          <parameter name="transcode_mimetype" transfer-ownership="none">
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
          <parameter name="src_stream" transfer-ownership="none">
            <type name="Gio.InputStream" c:type="GInputStream*"/>
          </parameter>
        </parameters>
      </constructor>
      <virtual-method name="kill_pipeline">
        <source-position filename="dmap-transcode-stream.h" line="62"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="stream" transfer-ownership="none">
            <type name="TranscodeStream" c:type="DmapTranscodeStream*"/>
          </instance-parameter>
        </parameters>
      </virtual-method>
      <field name="parent">
        <type name="Gio.InputStream" c:type="GInputStream"/>
      </field>
      <field name="priv">
        <type name="TranscodeStreamPrivate"
              c:type="DmapTranscodeStreamPrivate*"/>
      </field>
    </class>
    <record name="TranscodeStreamClass"
            c:type="DmapTranscodeStreamClass"
            glib:is-gtype-struct-for="TranscodeStream">
      <source-position filename="dmap-transcode-stream.h" line="63"/>
      <field name="parent">
        <type name="Gio.InputStreamClass" c:type="GInputStreamClass"/>
      </field>
      <field name="kill_pipeline">
        <callback name="kill_pipeline">
          <source-position filename="dmap-transcode-stream.h" line="62"/>
          <return-value transfer-ownership="none">
            <type name="none" c:type="void"/>
          </return-value>
          <parameters>
            <parameter name="stream" transfer-ownership="none">
              <type name="TranscodeStream" c:type="DmapTranscodeStream*"/>
            </parameter>
          </parameters>
        </callback>
      </field>
    </record>
    <record name="TranscodeStreamPrivate"
            c:type="DmapTranscodeStreamPrivate"
            disguised="1"
            opaque="1">
      <source-position filename="dmap-transcode-stream.h" line="52"/>
    </record>
    <function name="av_record_cmp_by_album"
              c:identifier="dmap_av_record_cmp_by_album"
              moved-to="AvRecord.cmp_by_album">
      <doc xml:space="preserve"
           filename="dmap-av-record.h"
           line="103">Compares the two records associated with the provided keys according
to album. Suitable to sort lists of albums.</doc>
      <source-position filename="dmap-av-record.h" line="112"/>
      <return-value transfer-ownership="none">
        <type name="gint" c:type="gint"/>
      </return-value>
      <parameters>
        <parameter name="a"
                   transfer-ownership="none"
                   nullable="1"
                   allow-none="1">
          <doc xml:space="preserve"
               filename="dmap-av-record.h"
               line="105">first ID.</doc>
          <type name="gpointer" c:type="gpointer"/>
        </parameter>
        <parameter name="b"
                   transfer-ownership="none"
                   nullable="1"
                   allow-none="1">
          <doc xml:space="preserve"
               filename="dmap-av-record.h"
               line="106">second ID.</doc>
          <type name="gpointer" c:type="gpointer"/>
        </parameter>
        <parameter name="db" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="dmap-av-record.h"
               line="107">A DmapDb for which a and b are valid ID's.</doc>
          <type name="Db" c:type="DmapDb*"/>
        </parameter>
      </parameters>
    </function>
    <docsection name="dmap-av-connection">
      <doc xml:space="preserve"
           filename="dmap-av-connection.h"
           line="26">#DmapAvConnection objects encapsulate a DAAP connection.</doc>
    </docsection>
    <docsection name="dmap-av-record">
      <doc xml:space="preserve"
           filename="dmap-av-record.h"
           line="31">#DmapAvRecord objects encapsulate the description of an item shared using DAAP.</doc>
    </docsection>
    <docsection name="dmap-av-share">
      <doc xml:space="preserve"
           filename="dmap-av-share.h"
           line="34">#DmapAvShare objects encapsulate a DAAP share.</doc>
    </docsection>
    <docsection name="dmap-connection">
      <doc xml:space="preserve"
           filename="dmap-connection.h"
           line="34">#DmapConnection provides an abstract parent to the #DmapAvConnection, #DmapControlConnection, and #DmapImageConnection classes.</doc>
    </docsection>
    <docsection name="dmap-container-db">
      <doc xml:space="preserve"
           filename="dmap-container-db.h"
           line="29">#DmapContainerDb provides an interface for DMAP container databases.</doc>
    </docsection>
    <docsection name="dmap-container-record">
      <doc xml:space="preserve"
           filename="dmap-container-record.h"
           line="28">#DmapContainerRecord objects encapsulate the description of an item shared using DACP.</doc>
    </docsection>
    <docsection name="dmap-control-connection">
      <doc xml:space="preserve"
           filename="dmap-control-connection.h"
           line="26">#DmapControlConnection objects encapsulate a DACP connection.</doc>
    </docsection>
    <docsection name="dmap-control-player">
      <doc xml:space="preserve"
           filename="dmap-control-player.h"
           line="26">#DmapControlPlayer provides an interface for controlling the playback of media.</doc>
    </docsection>
    <docsection name="dmap-control-share">
      <doc xml:space="preserve"
           filename="dmap-control-share.h"
           line="34">#DmapControlShare objects encapsulate a DACP share.</doc>
    </docsection>
    <docsection name="dmap-db">
      <doc xml:space="preserve"
           filename="dmap-db.h"
           line="29">#DmapDb provides an interface for DMAP databases.</doc>
    </docsection>
    <docsection name="dmap-image-connection">
      <doc xml:space="preserve"
           filename="dmap-image-connection.h"
           line="26">#DmapImageConnection objects encapsulate a DPAP connection.</doc>
    </docsection>
    <docsection name="dmap-image-record">
      <doc xml:space="preserve"
           filename="dmap-image-record.h"
           line="30">#DmapImageRecord objects encapsulate the description of an item shared using DPAP.</doc>
    </docsection>
    <docsection name="dmap-image-share">
      <doc xml:space="preserve"
           filename="dmap-image-share.h"
           line="32">#DmapImageShare objects encapsulate a DPAP share.</doc>
    </docsection>
    <docsection name="dmap-mdns-browser">
      <doc xml:space="preserve"
           filename="dmap-mdns-browser.h"
           line="31">#DmapMdnsBrowser objects watch for DMAP shares.</doc>
    </docsection>
    <docsection name="dmap-mdns-service">
      <doc xml:space="preserve"
           filename="dmap-mdns-service.h"
           line="26">#DmapMdnsService objects advertise DMAP shares.</doc>
    </docsection>
    <docsection name="dmap-record">
      <doc xml:space="preserve"
           filename="dmap-record.h"
           line="28">#DmapRecord provides an abstract parent to the #DmapAvRecord and #DmapImageRecord classes.</doc>
    </docsection>
    <docsection name="dmap-record-factory">
      <doc xml:space="preserve"
           filename="dmap-record-factory.h"
           line="29">#DmapRecordFactory is a factory capable of creating #DmapRecord objects.</doc>
    </docsection>
    <docsection name="dmap-share">
      <doc xml:space="preserve"
           filename="dmap-share.h"
           line="35">#DmapShare provides an abstract parent to the #DmapAvShare, #DmapControlShare, and #DmapImageShare classes.</doc>
    </docsection>
    <docsection name="dmap-transcode-stream">
      <doc xml:space="preserve"
           filename="dmap-transcode-stream.h"
           line="31">#DmapTranscodeStream objects wrap a #GInputStream in a way that transcodes the data therein.</doc>
    </docsection>
    <function name="error_quark"
              c:identifier="dmap_error_quark"
              moved-to="Error.quark">
      <return-value transfer-ownership="none">
        <type name="GLib.Quark" c:type="GQuark"/>
      </return-value>
    </function>
    <function name="md5_generate" c:identifier="dmap_md5_generate">
      <source-position filename="dmap-md5.h" line="49"/>
      <return-value transfer-ownership="none">
        <type name="none" c:type="void"/>
      </return-value>
      <parameters>
        <parameter name="version_major" transfer-ownership="none">
          <type name="gshort" c:type="short"/>
        </parameter>
        <parameter name="url" transfer-ownership="none">
          <type name="guint8" c:type="const guchar*"/>
        </parameter>
        <parameter name="hash_select" transfer-ownership="none">
          <type name="guint8" c:type="guchar"/>
        </parameter>
        <parameter name="out" transfer-ownership="none">
          <type name="guint8" c:type="guchar*"/>
        </parameter>
        <parameter name="request_id" transfer-ownership="none">
          <type name="gint" c:type="gint"/>
        </parameter>
      </parameters>
    </function>
    <function name="md5_progressive_final"
              c:identifier="dmap_md5_progressive_final">
      <source-position filename="dmap-md5.h" line="44"/>
      <return-value transfer-ownership="none">
        <type name="none" c:type="void"/>
      </return-value>
      <parameters>
        <parameter name="context" transfer-ownership="none">
          <type name="HashContext" c:type="DmapHashContext*"/>
        </parameter>
        <parameter name="digest" transfer-ownership="none">
          <type name="guint8" c:type="unsigned char*"/>
        </parameter>
      </parameters>
    </function>
    <function name="md5_progressive_init"
              c:identifier="dmap_md5_progressive_init">
      <source-position filename="dmap-md5.h" line="38"/>
      <return-value transfer-ownership="none">
        <type name="none" c:type="void"/>
      </return-value>
      <parameters>
        <parameter name="context" transfer-ownership="none">
          <type name="HashContext" c:type="DmapHashContext*"/>
        </parameter>
      </parameters>
    </function>
    <function name="md5_progressive_to_string"
              c:identifier="dmap_md5_progressive_to_string">
      <source-position filename="dmap-md5.h" line="47"/>
      <return-value transfer-ownership="none">
        <type name="none" c:type="void"/>
      </return-value>
      <parameters>
        <parameter name="digest" transfer-ownership="none">
          <type name="guint8" c:type="const unsigned char*"/>
        </parameter>
        <parameter name="string" transfer-ownership="none">
          <type name="utf8" c:type="gchar*"/>
        </parameter>
      </parameters>
    </function>
    <function name="md5_progressive_update"
              c:identifier="dmap_md5_progressive_update">
      <source-position filename="dmap-md5.h" line="40"/>
      <return-value transfer-ownership="none">
        <type name="none" c:type="void"/>
      </return-value>
      <parameters>
        <parameter name="context" transfer-ownership="none">
          <type name="HashContext" c:type="DmapHashContext*"/>
        </parameter>
        <parameter name="buffer" transfer-ownership="none">
          <type name="guint8" c:type="const unsigned char*"/>
        </parameter>
        <parameter name="length" transfer-ownership="none">
          <type name="guint" c:type="unsigned int"/>
        </parameter>
      </parameters>
    </function>
    <function name="mdns_browser_error_quark"
              c:identifier="dmap_mdns_browser_error_quark"
              moved-to="MdnsBrowserError.quark">
      <return-value transfer-ownership="none">
        <type name="GLib.Quark" c:type="GQuark"/>
      </return-value>
    </function>
    <function name="mdns_publisher_error_quark"
              c:identifier="dmap_mdns_publisher_error_quark"
              moved-to="MdnsPublisherError.quark">
      <return-value transfer-ownership="none">
        <type name="GLib.Quark" c:type="GQuark"/>
      </return-value>
    </function>
    <function name="utils_mime_to_format"
              c:identifier="dmap_utils_mime_to_format">
      <source-position filename="dmap-utils.h" line="32"/>
      <return-value transfer-ownership="full">
        <doc xml:space="preserve"
             filename="dmap-utils.h"
             line="30">a string representing the corresponding type  (e.g., "wav").</doc>
        <type name="utf8" c:type="gchar*"/>
      </return-value>
      <parameters>
        <parameter name="transcode_mimetype" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="dmap-utils.h"
               line="28">a string representing a MIME type (e.g., "audio/wav").</doc>
          <type name="utf8" c:type="const gchar*"/>
        </parameter>
      </parameters>
    </function>
  </namespace>
</repository>
