<?xml version="1.0"?>
<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="Gio" version="2.0"/>
<include name="Gee" version="0.8"/>
<include name="GLib" version="2.0"/>
<include name="GUPnPAV" version="1.0"/>
<include name="GUPnP" version="1.0"/>
<include name="Soup" version="2.4"/>
<include name="RygelCore" version="2.6"/>
<package name="rygel-server-2.6"/>
<c:include name="rygel-server.h"/>
<c:include name="rygel-core.h"/>
<c:include name="config.h"/>
<namespace name="RygelServer" version="2.6" c:prefix="Rygel">
	<enumeration name="LogicalOperator" c:type="RygelLogicalOperator" glib:type-name="RygelLogicalOperator" glib:get-type="rygel_logical_operator_get_type">
		<member name="and" c:identifier="RYGEL_LOGICAL_OPERATOR_AND" value="0"/>
		<member name="or" c:identifier="RYGEL_LOGICAL_OPERATOR_OR" value="1"/>
	</enumeration>
	<enumeration name="ObjectEventType" c:type="RygelObjectEventType" glib:type-name="RygelObjectEventType" glib:get-type="rygel_object_event_type_get_type">
		<member name="added" c:identifier="RYGEL_OBJECT_EVENT_TYPE_ADDED" value="0"/>
		<member name="modified" c:identifier="RYGEL_OBJECT_EVENT_TYPE_MODIFIED" value="1"/>
		<member name="deleted" c:identifier="RYGEL_OBJECT_EVENT_TYPE_DELETED" value="2"/>
	</enumeration>
	<enumeration name="SerializerType" c:type="RygelSerializerType" glib:type-name="RygelSerializerType" glib:get-type="rygel_serializer_type_get_type">
		<member name="generic_didl" c:identifier="RYGEL_SERIALIZER_TYPE_GENERIC_DIDL" value="0"/>
		<member name="didl_s" c:identifier="RYGEL_SERIALIZER_TYPE_DIDL_S" value="1"/>
		<member name="m3uext" c:identifier="RYGEL_SERIALIZER_TYPE_M3UEXT" value="2"/>
	</enumeration>
	<enumeration name="WritableContainerError" c:type="RygelWritableContainerError" glib:error-domain="rygel_writable_container_error-quark">
		<member name="not_implemented" c:identifier="RYGEL_WRITABLE_CONTAINER_ERROR_NOT_IMPLEMENTED" value="602"/>
	</enumeration>
	<enumeration name="MediaEngineError" c:type="RygelMediaEngineError" glib:error-domain="rygel_media_engine_error-quark">
		<member name="not_found" c:identifier="RYGEL_MEDIA_ENGINE_ERROR_NOT_FOUND" value="0"/>
	</enumeration>
	<enumeration name="HTTPSeekRequestError" c:type="RygelHTTPSeekRequestError" glib:error-domain="rygel_http_seek_request_error-quark">
		<member name="invalid_range" c:identifier="RYGEL_HTTP_SEEK_REQUEST_ERROR_INVALID_RANGE" value="(null)"/>
		<member name="bad_request" c:identifier="RYGEL_HTTP_SEEK_REQUEST_ERROR_BAD_REQUEST" value="(null)"/>
		<member name="out_of_range" c:identifier="RYGEL_HTTP_SEEK_REQUEST_ERROR_OUT_OF_RANGE" value="(null)"/>
	</enumeration>
	<enumeration name="DataSourceError" c:type="RygelDataSourceError" glib:error-domain="rygel_data_source_error-quark">
		<member name="general" c:identifier="RYGEL_DATA_SOURCE_ERROR_GENERAL" value="0"/>
		<member name="seek_failed" c:identifier="RYGEL_DATA_SOURCE_ERROR_SEEK_FAILED" value="1"/>
		<member name="playspeed_failed" c:identifier="RYGEL_DATA_SOURCE_ERROR_PLAYSPEED_FAILED" value="2"/>
	</enumeration>
	<enumeration name="HTTPRequestError" c:type="RygelHTTPRequestError" glib:error-domain="rygel_http_request_error-quark">
		<member name="unacceptable" c:identifier="RYGEL_HTTP_REQUEST_ERROR_UNACCEPTABLE" value="(null)"/>
		<member name="bad_request" c:identifier="RYGEL_HTTP_REQUEST_ERROR_BAD_REQUEST" value="(null)"/>
		<member name="not_found" c:identifier="RYGEL_HTTP_REQUEST_ERROR_NOT_FOUND" value="(null)"/>
		<member name="internal_server_error" c:identifier="RYGEL_HTTP_REQUEST_ERROR_INTERNAL_SERVER_ERROR" value="(null)"/>
	</enumeration>
	<enumeration name="PlaySpeedError" c:type="RygelPlaySpeedError" glib:error-domain="rygel_play_speed_error-quark">
		<member name="invalid_speed_format" c:identifier="RYGEL_PLAY_SPEED_ERROR_INVALID_SPEED_FORMAT" value="0"/>
		<member name="speed_not_present" c:identifier="RYGEL_PLAY_SPEED_ERROR_SPEED_NOT_PRESENT" value="1"/>
	</enumeration>
	<class name="AudioItem" c:type="RygelAudioItem" glib:type-name="RygelAudioItem" glib:get-type="rygel_audio_item_get_type" glib:type-struct="AudioItemClass" parent="RygelServer.MediaFileItem">
		<field name="parent_instance">
			<type name="RygelServer.MediaFileItem" c:type="RygelMediaFileItem"/>
		</field>
		<field name="priv">
			<type name="AudioItemPrivate" c:type="RygelAudioItemPrivate*"/>
		</field>
		<constant name="UPNP_CLASS" c:identifier="RYGEL_AUDIO_ITEM_UPNP_CLASS" value="object.item.audioItem">
			<type name="utf8" c:type="const gchar*"/>
		</constant>
		<constructor name="new" c:identifier="rygel_audio_item_new">
			<return-value transfer-ownership="full">
				<type name="RygelServer.AudioItem" c:type="RygelAudioItem*"/>
			</return-value>
			<parameters>
				<parameter name="id" transfer-ownership="none">
					<type name="utf8" c:type="const gchar*"/>
				</parameter>
				<parameter name="parent" transfer-ownership="none">
					<type name="RygelServer.MediaContainer" c:type="RygelMediaContainer*"/>
				</parameter>
				<parameter name="title" transfer-ownership="none">
					<type name="utf8" c:type="const gchar*"/>
				</parameter>
				<parameter name="upnp_class" transfer-ownership="none">
					<type name="utf8" c:type="const gchar*"/>
				</parameter>
			</parameters>
		</constructor>
		<property name="duration" writable="1">
			<type name="glong" c:type="glong"/>
		</property>
		<method name="get_duration" c:identifier="rygel_audio_item_get_duration">
			<return-value transfer-ownership="none">
				<type name="glong" c:type="glong"/>
			</return-value>
		</method>
		<method name="set_duration" c:identifier="rygel_audio_item_set_duration">
			<return-value transfer-ownership="none">
				<type name="none"/>
			</return-value>
			<parameters>
				<parameter name="value" transfer-ownership="none">
					<type name="glong" c:type="glong"/>
				</parameter>
			</parameters>
		</method>
		<property name="bitrate" writable="1">
			<type name="gint" c:type="gint"/>
		</property>
		<method name="get_bitrate" c:identifier="rygel_audio_item_get_bitrate">
			<return-value transfer-ownership="none">
				<type name="gint" c:type="gint"/>
			</return-value>
		</method>
		<method name="set_bitrate" c:identifier="rygel_audio_item_set_bitrate">
			<return-value transfer-ownership="none">
				<type name="none"/>
			</return-value>
			<parameters>
				<parameter name="value" transfer-ownership="none">
					<type name="gint" c:type="gint"/>
				</parameter>
			</parameters>
		</method>
		<property name="sample-freq" writable="1">
			<type name="gint" c:type="gint"/>
		</property>
		<method name="get_sample_freq" c:identifier="rygel_audio_item_get_sample_freq">
			<return-value transfer-ownership="none">
				<type name="gint" c:type="gint"/>
			</return-value>
		</method>
		<method name="set_sample_freq" c:identifier="rygel_audio_item_set_sample_freq">
			<return-value transfer-ownership="none">
				<type name="none"/>
			</return-value>
			<parameters>
				<parameter name="value" transfer-ownership="none">
					<type name="gint" c:type="gint"/>
				</parameter>
			</parameters>
		</method>
		<property name="bits-per-sample" writable="1">
			<type name="gint" c:type="gint"/>
		</property>
		<method name="get_bits_per_sample" c:identifier="rygel_audio_item_get_bits_per_sample">
			<return-value transfer-ownership="none">
				<type name="gint" c:type="gint"/>
			</return-value>
		</method>
		<method name="set_bits_per_sample" c:identifier="rygel_audio_item_set_bits_per_sample">
			<return-value transfer-ownership="none">
				<type name="none"/>
			</return-value>
			<parameters>
				<parameter name="value" transfer-ownership="none">
					<type name="gint" c:type="gint"/>
				</parameter>
			</parameters>
		</method>
		<property name="channels" writable="1">
			<type name="gint" c:type="gint"/>
		</property>
		<method name="get_channels" c:identifier="rygel_audio_item_get_channels">
			<return-value transfer-ownership="none">
				<type name="gint" c:type="gint"/>
			</return-value>
		</method>
		<method name="set_channels" c:identifier="rygel_audio_item_set_channels">
			<return-value transfer-ownership="none">
				<type name="none"/>
			</return-value>
			<parameters>
				<parameter name="value" transfer-ownership="none">
					<type name="gint" c:type="gint"/>
				</parameter>
			</parameters>
		</method>
		<property name="album" writable="1">
			<type name="utf8" c:type="gchar*"/>
		</property>
		<method name="get_album" c:identifier="rygel_audio_item_get_album">
			<return-value transfer-ownership="none">
				<type name="utf8" c:type="const gchar*"/>
			</return-value>
		</method>
		<method name="set_album" c:identifier="rygel_audio_item_set_album">
			<return-value transfer-ownership="none">
				<type name="none"/>
			</return-value>
			<parameters>
				<parameter name="value" transfer-ownership="none">
					<type name="utf8" c:type="const gchar*"/>
				</parameter>
			</parameters>
		</method>
	</class>
	<record name="AudioItemClass" c:type="RygelAudioItemClass" glib:is-gtype-struct-for="AudioItem">
		<field name="parent_class">
			<type name="RygelServer.MediaFileItemClass" c:type="RygelMediaFileItemClass"/>
		</field>
	</record>
	<record name="AudioItemPrivate" c:type="RygelAudioItemPrivate" disguised="1"/>
	<class name="ImageItem" c:type="RygelImageItem" glib:type-name="RygelImageItem" glib:get-type="rygel_image_item_get_type" glib:type-struct="ImageItemClass" parent="RygelServer.MediaFileItem">
		<implements name="RygelServer.VisualItem"/>
		<field name="parent_instance">
			<type name="RygelServer.MediaFileItem" c:type="RygelMediaFileItem"/>
		</field>
		<field name="priv">
			<type name="ImageItemPrivate" c:type="RygelImageItemPrivate*"/>
		</field>
		<constant name="UPNP_CLASS" c:identifier="RYGEL_IMAGE_ITEM_UPNP_CLASS" value="object.item.imageItem">
			<type name="utf8" c:type="const gchar*"/>
		</constant>
		<constructor name="new" c:identifier="rygel_image_item_new">
			<return-value transfer-ownership="full">
				<type name="RygelServer.ImageItem" c:type="RygelImageItem*"/>
			</return-value>
			<parameters>
				<parameter name="id" transfer-ownership="none">
					<type name="utf8" c:type="const gchar*"/>
				</parameter>
				<parameter name="parent" transfer-ownership="none">
					<type name="RygelServer.MediaContainer" c:type="RygelMediaContainer*"/>
				</parameter>
				<parameter name="title" transfer-ownership="none">
					<type name="utf8" c:type="const gchar*"/>
				</parameter>
				<parameter name="upnp_class" transfer-ownership="none">
					<type name="utf8" c:type="const gchar*"/>
				</parameter>
			</parameters>
		</constructor>
	</class>
	<record name="ImageItemClass" c:type="RygelImageItemClass" glib:is-gtype-struct-for="ImageItem">
		<field name="parent_class">
			<type name="RygelServer.MediaFileItemClass" c:type="RygelMediaFileItemClass"/>
		</field>
	</record>
	<record name="ImageItemPrivate" c:type="RygelImageItemPrivate" disguised="1"/>
	<record name="LogicalExpression">
		<constructor name="new" c:identifier="rygel_logical_expression_new">
			<return-value transfer-ownership="full">
				<type name="RygelServer.LogicalExpression" c:type="RygelLogicalExpression*"/>
			</return-value>
		</constructor>
	</record>
	<class name="MediaArtStore" c:type="RygelMediaArtStore" glib:type-name="RygelMediaArtStore" glib:get-type="rygel_media_art_store_get_type" glib:type-struct="MediaArtStoreClass" parent="GObject.Object">
		<field name="parent_instance">
			<type name="GObject.Object" c:type="GObject"/>
		</field>
		<field name="priv">
			<type name="MediaArtStorePrivate" c:type="RygelMediaArtStorePrivate*"/>
		</field>
		<function name="get_default" c:identifier="rygel_media_art_store_get_default">
			<return-value transfer-ownership="full" allow-none="1">
				<type name="RygelServer.MediaArtStore" c:type="RygelMediaArtStore*"/>
			</return-value>
		</function>
		<method name="lookup_media_art" c:identifier="rygel_media_art_store_lookup_media_art" throws="1">
			<return-value transfer-ownership="full" allow-none="1">
				<type name="RygelServer.Thumbnail" c:type="RygelThumbnail*"/>
			</return-value>
			<parameters>
				<parameter name="item" transfer-ownership="none">
					<type name="RygelServer.MusicItem" c:type="RygelMusicItem*"/>
				</parameter>
			</parameters>
		</method>
		<method name="add" c:identifier="rygel_media_art_store_add">
			<return-value transfer-ownership="full">
				<type name="none"/>
			</return-value>
			<parameters>
				<parameter name="item" transfer-ownership="none">
					<type name="RygelServer.MusicItem" c:type="RygelMusicItem*"/>
				</parameter>
				<parameter name="file" transfer-ownership="none">
					<type name="Gio.File" c:type="GFile*"/>
				</parameter>
				<parameter name="data" transfer-ownership="none">
					<array length="3">
						<type name="guint8" c:type="guint8"/>
					</array>
				</parameter>
				<parameter name="data_length1" transfer-ownership="none">
					<type name="gint" c:type="gint"/>
				</parameter>
				<parameter name="mime" transfer-ownership="none">
					<type name="utf8" c:type="const gchar*"/>
				</parameter>
			</parameters>
		</method>
		<method name="search_media_art_for_file" c:identifier="rygel_media_art_store_search_media_art_for_file">
			<return-value transfer-ownership="full">
				<type name="none"/>
			</return-value>
			<parameters>
				<parameter name="item" transfer-ownership="none">
					<type name="RygelServer.MusicItem" c:type="RygelMusicItem*"/>
				</parameter>
				<parameter name="file" transfer-ownership="none">
					<type name="Gio.File" c:type="GFile*"/>
				</parameter>
			</parameters>
		</method>
	</class>
	<record name="MediaArtStoreClass" c:type="RygelMediaArtStoreClass" glib:is-gtype-struct-for="MediaArtStore">
		<field name="parent_class">
			<type name="GObject.ObjectClass" c:type="GObjectClass"/>
		</field>
	</record>
	<record name="MediaArtStorePrivate" c:type="RygelMediaArtStorePrivate" disguised="1"/>
	<class name="MediaObjects" c:type="RygelMediaObjects" glib:type-name="RygelMediaObjects" glib:get-type="rygel_media_objects_get_type" glib:type-struct="MediaObjectsClass" parent="Gee.ArrayList">
		<field name="parent_instance">
			<type name="Gee.ArrayList" c:type="GeeArrayList"/>
		</field>
		<field name="priv">
			<type name="MediaObjectsPrivate" c:type="RygelMediaObjectsPrivate*"/>
		</field>
		<constant name="SORT_CAPS" c:identifier="RYGEL_MEDIA_OBJECTS_SORT_CAPS" value="(null)">
			<type name="utf8" c:type="const gchar*"/>
		</constant>
		<method name="sort_by_criteria" c:identifier="rygel_media_objects_sort_by_criteria">
			<return-value transfer-ownership="full">
				<type name="none"/>
			</return-value>
			<parameters>
				<parameter name="sort_criteria" transfer-ownership="none">
					<type name="utf8" c:type="const gchar*"/>
				</parameter>
			</parameters>
		</method>
		<constructor name="new" c:identifier="rygel_media_objects_new">
			<return-value transfer-ownership="full">
				<type name="RygelServer.MediaObjects" c:type="RygelMediaObjects*"/>
			</return-value>
		</constructor>
	</class>
	<record name="MediaObjectsClass" c:type="RygelMediaObjectsClass" glib:is-gtype-struct-for="MediaObjects">
		<field name="parent_class">
			<type name="Gee.ArrayListClass" c:type="GeeArrayListClass"/>
		</field>
	</record>
	<record name="MediaObjectsPrivate" c:type="RygelMediaObjectsPrivate" disguised="1"/>
	<class name="MusicItem" c:type="RygelMusicItem" glib:type-name="RygelMusicItem" glib:get-type="rygel_music_item_get_type" glib:type-struct="MusicItemClass" parent="RygelServer.AudioItem">
		<field name="parent_instance">
			<type name="RygelServer.AudioItem" c:type="RygelAudioItem"/>
		</field>
		<field name="priv">
			<type name="MusicItemPrivate" c:type="RygelMusicItemPrivate*"/>
		</field>
		<constant name="UPNP_CLASS" c:identifier="RYGEL_MUSIC_ITEM_UPNP_CLASS" value="object.item.audioItem.musicTrack">
			<type name="utf8" c:type="const gchar*"/>
		</constant>
		<constructor name="new" c:identifier="rygel_music_item_new">
			<return-value transfer-ownership="full">
				<type name="RygelServer.MusicItem" c:type="RygelMusicItem*"/>
			</return-value>
			<parameters>
				<parameter name="id" transfer-ownership="none">
					<type name="utf8" c:type="const gchar*"/>
				</parameter>
				<parameter name="parent" transfer-ownership="none">
					<type name="RygelServer.MediaContainer" c:type="RygelMediaContainer*"/>
				</parameter>
				<parameter name="title" transfer-ownership="none">
					<type name="utf8" c:type="const gchar*"/>
				</parameter>
				<parameter name="upnp_class" transfer-ownership="none">
					<type name="utf8" c:type="const gchar*"/>
				</parameter>
			</parameters>
		</constructor>
		<method name="lookup_album_art" c:identifier="rygel_music_item_lookup_album_art">
			<return-value transfer-ownership="full">
				<type name="none"/>
			</return-value>
		</method>
		<property name="track-number" writable="1">
			<type name="gint" c:type="gint"/>
		</property>
		<method name="get_track_number" c:identifier="rygel_music_item_get_track_number">
			<return-value transfer-ownership="none">
				<type name="gint" c:type="gint"/>
			</return-value>
		</method>
		<method name="set_track_number" c:identifier="rygel_music_item_set_track_number">
			<return-value transfer-ownership="none">
				<type name="none"/>
			</return-value>
			<parameters>
				<parameter name="value" transfer-ownership="none">
					<type name="gint" c:type="gint"/>
				</parameter>
			</parameters>
		</method>
		<property name="album-art" writable="1">
			<type name="RygelServer.Thumbnail" c:type="RygelThumbnail*"/>
		</property>
		<method name="get_album_art" c:identifier="rygel_music_item_get_album_art">
			<return-value transfer-ownership="none">
				<type name="RygelServer.Thumbnail" c:type="RygelThumbnail*"/>
			</return-value>
		</method>
		<method name="set_album_art" c:identifier="rygel_music_item_set_album_art">
			<return-value transfer-ownership="none">
				<type name="none"/>
			</return-value>
			<parameters>
				<parameter name="value" transfer-ownership="none">
					<type name="RygelServer.Thumbnail" c:type="RygelThumbnail*"/>
				</parameter>
			</parameters>
		</method>
	</class>
	<record name="MusicItemClass" c:type="RygelMusicItemClass" glib:is-gtype-struct-for="MusicItem">
		<field name="parent_class">
			<type name="RygelServer.AudioItemClass" c:type="RygelAudioItemClass"/>
		</field>
	</record>
	<record name="MusicItemPrivate" c:type="RygelMusicItemPrivate" disguised="1"/>
	<class name="PhotoItem" c:type="RygelPhotoItem" glib:type-name="RygelPhotoItem" glib:get-type="rygel_photo_item_get_type" glib:type-struct="PhotoItemClass" parent="RygelServer.ImageItem">
		<field name="parent_instance">
			<type name="RygelServer.ImageItem" c:type="RygelImageItem"/>
		</field>
		<field name="priv">
			<type name="PhotoItemPrivate" c:type="RygelPhotoItemPrivate*"/>
		</field>
		<constant name="UPNP_CLASS" c:identifier="RYGEL_PHOTO_ITEM_UPNP_CLASS" value="object.item.imageItem.photo">
			<type name="utf8" c:type="const gchar*"/>
		</constant>
		<constructor name="new" c:identifier="rygel_photo_item_new">
			<return-value transfer-ownership="full">
				<type name="RygelServer.PhotoItem" c:type="RygelPhotoItem*"/>
			</return-value>
			<parameters>
				<parameter name="id" transfer-ownership="none">
					<type name="utf8" c:type="const gchar*"/>
				</parameter>
				<parameter name="parent" transfer-ownership="none">
					<type name="RygelServer.MediaContainer" c:type="RygelMediaContainer*"/>
				</parameter>
				<parameter name="title" transfer-ownership="none">
					<type name="utf8" c:type="const gchar*"/>
				</parameter>
				<parameter name="upnp_class" transfer-ownership="none">
					<type name="utf8" c:type="const gchar*"/>
				</parameter>
			</parameters>
		</constructor>
	</class>
	<record name="PhotoItemClass" c:type="RygelPhotoItemClass" glib:is-gtype-struct-for="PhotoItem">
		<field name="parent_class">
			<type name="RygelServer.ImageItemClass" c:type="RygelImageItemClass"/>
		</field>
	</record>
	<record name="PhotoItemPrivate" c:type="RygelPhotoItemPrivate" disguised="1"/>
	<record name="RelationalExpression">
		<method name="compare_string" c:identifier="rygel_relational_expression_compare_string">
			<return-value transfer-ownership="full">
				<type name="gboolean" c:type="gboolean"/>
			</return-value>
			<parameters>
				<parameter name="str" transfer-ownership="none" allow-none="1">
					<type name="utf8" c:type="const gchar*"/>
				</parameter>
			</parameters>
		</method>
		<method name="compare_int" c:identifier="rygel_relational_expression_compare_int">
			<return-value transfer-ownership="full">
				<type name="gboolean" c:type="gboolean"/>
			</return-value>
			<parameters>
				<parameter name="integer" transfer-ownership="none">
					<type name="gint" c:type="gint"/>
				</parameter>
			</parameters>
		</method>
		<method name="compare_uint" c:identifier="rygel_relational_expression_compare_uint">
			<return-value transfer-ownership="full">
				<type name="gboolean" c:type="gboolean"/>
			</return-value>
			<parameters>
				<parameter name="integer" transfer-ownership="none">
					<type name="guint" c:type="guint"/>
				</parameter>
			</parameters>
		</method>
		<constructor name="new" c:identifier="rygel_relational_expression_new">
			<return-value transfer-ownership="full">
				<type name="RygelServer.RelationalExpression" c:type="RygelRelationalExpression*"/>
			</return-value>
		</constructor>
	</record>
	<class name="SimpleContainer" c:type="RygelSimpleContainer" glib:type-name="RygelSimpleContainer" glib:get-type="rygel_simple_container_get_type" glib:type-struct="SimpleContainerClass" parent="RygelServer.MediaContainer">
		<implements name="RygelServer.SearchableContainer"/>
		<field name="parent_instance">
			<type name="RygelServer.MediaContainer" c:type="RygelMediaContainer"/>
		</field>
		<field name="priv">
			<type name="SimpleContainerPrivate" c:type="RygelSimpleContainerPrivate*"/>
		</field>
		<field name="children">
			<type name="RygelServer.MediaObjects" c:type="RygelMediaObjects*"/>
		</field>
		<constructor name="new" c:identifier="rygel_simple_container_new">
			<return-value transfer-ownership="full">
				<type name="RygelServer.SimpleContainer" c:type="RygelSimpleContainer*"/>
			</return-value>
			<parameters>
				<parameter name="id" transfer-ownership="none">
					<type name="utf8" c:type="const gchar*"/>
				</parameter>
				<parameter name="parent" transfer-ownership="none" allow-none="1">
					<type name="RygelServer.MediaContainer" c:type="RygelMediaContainer*"/>
				</parameter>
				<parameter name="title" transfer-ownership="none">
					<type name="utf8" c:type="const gchar*"/>
				</parameter>
			</parameters>
		</constructor>
		<constructor name="root" c:identifier="rygel_simple_container_new_root">
			<return-value transfer-ownership="full">
				<type name="RygelServer.SimpleContainer" c:type="RygelSimpleContainer*"/>
			</return-value>
			<parameters>
				<parameter name="title" transfer-ownership="none">
					<type name="utf8" c:type="const gchar*"/>
				</parameter>
			</parameters>
		</constructor>
		<method name="add_child_item" c:identifier="rygel_simple_container_add_child_item">
			<return-value transfer-ownership="full">
				<type name="none"/>
			</return-value>
			<parameters>
				<parameter name="child" transfer-ownership="none">
					<type name="RygelServer.MediaItem" c:type="RygelMediaItem*"/>
				</parameter>
			</parameters>
		</method>
		<method name="get_all_children" c:identifier="rygel_simple_container_get_all_children">
			<return-value transfer-ownership="full">
				<type name="RygelServer.MediaObjects" c:type="RygelMediaObjects*"/>
			</return-value>
		</method>
		<method name="add_child_container" c:identifier="rygel_simple_container_add_child_container">
			<return-value transfer-ownership="full">
				<type name="none"/>
			</return-value>
			<parameters>
				<parameter name="child" transfer-ownership="none">
					<type name="RygelServer.MediaContainer" c:type="RygelMediaContainer*"/>
				</parameter>
			</parameters>
		</method>
		<method name="remove_child" c:identifier="rygel_simple_container_remove_child">
			<return-value transfer-ownership="full">
				<type name="none"/>
			</return-value>
			<parameters>
				<parameter name="child" transfer-ownership="none">
					<type name="RygelServer.MediaObject" c:type="RygelMediaObject*"/>
				</parameter>
			</parameters>
		</method>
		<method name="clear" c:identifier="rygel_simple_container_clear">
			<return-value transfer-ownership="full">
				<type name="none"/>
			</return-value>
		</method>
		<method name="is_child_id_unique" c:identifier="rygel_simple_container_is_child_id_unique">
			<return-value transfer-ownership="full">
				<type name="gboolean" c:type="gboolean"/>
			</return-value>
			<parameters>
				<parameter name="child_id" transfer-ownership="none">
					<type name="utf8" c:type="const gchar*"/>
				</parameter>
			</parameters>
		</method>
	</class>
	<record name="SimpleContainerClass" c:type="RygelSimpleContainerClass" glib:is-gtype-struct-for="SimpleContainer">
		<field name="parent_class">
			<type name="RygelServer.MediaContainerClass" c:type="RygelMediaContainerClass"/>
		</field>
	</record>
	<record name="SimpleContainerPrivate" c:type="RygelSimpleContainerPrivate" disguised="1"/>
	<record name="Subtitle">
		<field name="uri">
			<type name="utf8" c:type="gchar*"/>
		</field>
		<field name="mime_type">
			<type name="utf8" c:type="gchar*"/>
		</field>
		<field name="caption_type">
			<type name="utf8" c:type="gchar*"/>
		</field>
		<field name="size">
			<type name="gint64" c:type="gint64"/>
		</field>
		<constructor name="new" c:identifier="rygel_subtitle_new">
			<return-value transfer-ownership="full">
				<type name="RygelServer.Subtitle" c:type="RygelSubtitle*"/>
			</return-value>
			<parameters>
				<parameter name="mime_type" transfer-ownership="none">
					<type name="utf8" c:type="const gchar*"/>
				</parameter>
				<parameter name="caption_type" transfer-ownership="none">
					<type name="utf8" c:type="const gchar*"/>
				</parameter>
			</parameters>
		</constructor>
	</record>
	<record name="Thumbnail">
		<field name="dlna_profile">
			<type name="utf8" c:type="gchar*"/>
		</field>
		<constructor name="new" c:identifier="rygel_thumbnail_new">
			<return-value transfer-ownership="full">
				<type name="RygelServer.Thumbnail" c:type="RygelThumbnail*"/>
			</return-value>
			<parameters>
				<parameter name="mime_type" transfer-ownership="none">
					<type name="utf8" c:type="const gchar*"/>
				</parameter>
				<parameter name="dlna_profile" transfer-ownership="none">
					<type name="utf8" c:type="const gchar*"/>
				</parameter>
				<parameter name="file_extension" transfer-ownership="none">
					<type name="utf8" c:type="const gchar*"/>
				</parameter>
			</parameters>
		</constructor>
	</record>
	<class name="VideoItem" c:type="RygelVideoItem" glib:type-name="RygelVideoItem" glib:get-type="rygel_video_item_get_type" glib:type-struct="VideoItemClass" parent="RygelServer.AudioItem">
		<implements name="RygelServer.VisualItem"/>
		<field name="parent_instance">
			<type name="RygelServer.AudioItem" c:type="RygelAudioItem"/>
		</field>
		<field name="priv">
			<type name="VideoItemPrivate" c:type="RygelVideoItemPrivate*"/>
		</field>
		<constant name="UPNP_CLASS" c:identifier="RYGEL_VIDEO_ITEM_UPNP_CLASS" value="object.item.videoItem">
			<type name="utf8" c:type="const gchar*"/>
		</constant>
		<constructor name="new" c:identifier="rygel_video_item_new">
			<return-value transfer-ownership="full">
				<type name="RygelServer.VideoItem" c:type="RygelVideoItem*"/>
			</return-value>
			<parameters>
				<parameter name="id" transfer-ownership="none">
					<type name="utf8" c:type="const gchar*"/>
				</parameter>
				<parameter name="parent" transfer-ownership="none">
					<type name="RygelServer.MediaContainer" c:type="RygelMediaContainer*"/>
				</parameter>
				<parameter name="title" transfer-ownership="none">
					<type name="utf8" c:type="const gchar*"/>
				</parameter>
				<parameter name="upnp_class" transfer-ownership="none">
					<type name="utf8" c:type="const gchar*"/>
				</parameter>
			</parameters>
		</constructor>
		<property name="author" writable="1">
			<type name="utf8" c:type="gchar*"/>
		</property>
		<method name="get_author" c:identifier="rygel_video_item_get_author">
			<return-value transfer-ownership="none">
				<type name="utf8" c:type="const gchar*"/>
			</return-value>
		</method>
		<method name="set_author" c:identifier="rygel_video_item_set_author">
			<return-value transfer-ownership="none">
				<type name="none"/>
			</return-value>
			<parameters>
				<parameter name="value" transfer-ownership="none">
					<type name="utf8" c:type="const gchar*"/>
				</parameter>
			</parameters>
		</method>
		<property name="subtitles" writable="1">
			<type name="Gee.ArrayList" c:type="GeeArrayList*">
				<type name="RygelServer.Subtitle" c:type="RygelSubtitle*"/>
			</type>
		</property>
		<method name="get_subtitles" c:identifier="rygel_video_item_get_subtitles">
			<return-value transfer-ownership="none">
				<type name="Gee.ArrayList" c:type="GeeArrayList*">
					<type name="RygelServer.Subtitle" c:type="RygelSubtitle*"/>
				</type>
			</return-value>
		</method>
		<method name="set_subtitles" c:identifier="rygel_video_item_set_subtitles">
			<return-value transfer-ownership="none">
				<type name="none"/>
			</return-value>
			<parameters>
				<parameter name="value" transfer-ownership="none">
					<type name="Gee.ArrayList" c:type="GeeArrayList*">
						<type name="RygelServer.Subtitle" c:type="RygelSubtitle*"/>
					</type>
				</parameter>
			</parameters>
		</method>
	</class>
	<record name="VideoItemClass" c:type="RygelVideoItemClass" glib:is-gtype-struct-for="VideoItem">
		<field name="parent_class">
			<type name="RygelServer.AudioItemClass" c:type="RygelAudioItemClass"/>
		</field>
	</record>
	<record name="VideoItemPrivate" c:type="RygelVideoItemPrivate" disguised="1"/>
	<class name="MediaContainer" c:type="RygelMediaContainer" glib:type-name="RygelMediaContainer" glib:get-type="rygel_media_container_get_type" glib:type-struct="MediaContainerClass" parent="RygelServer.MediaObject" abstract="1">
		<field name="parent_instance">
			<type name="RygelServer.MediaObject" c:type="RygelMediaObject"/>
		</field>
		<field name="priv">
			<type name="MediaContainerPrivate" c:type="RygelMediaContainerPrivate*"/>
		</field>
		<field name="update_id">
			<type name="guint32" c:type="guint32"/>
		</field>
		<field name="storage_used">
			<type name="gint64" c:type="gint64"/>
		</field>
		<field name="total_deleted_child_count">
			<type name="gint64" c:type="gint64"/>
		</field>
		<constant name="ANY" c:identifier="RYGEL_MEDIA_CONTAINER_ANY" value="DLNA.ORG_AnyContainer">
			<type name="utf8" c:type="const gchar*"/>
		</constant>
		<constant name="UPNP_CLASS" c:identifier="RYGEL_MEDIA_CONTAINER_UPNP_CLASS" value="object.container">
			<type name="utf8" c:type="const gchar*"/>
		</constant>
		<constant name="STORAGE_FOLDER" c:identifier="RYGEL_MEDIA_CONTAINER_STORAGE_FOLDER" value="(null)">
			<type name="utf8" c:type="const gchar*"/>
		</constant>
		<constant name="MUSIC_ALBUM" c:identifier="RYGEL_MEDIA_CONTAINER_MUSIC_ALBUM" value="(null)">
			<type name="utf8" c:type="const gchar*"/>
		</constant>
		<constant name="MUSIC_ARTIST" c:identifier="RYGEL_MEDIA_CONTAINER_MUSIC_ARTIST" value="(null)">
			<type name="utf8" c:type="const gchar*"/>
		</constant>
		<constant name="MUSIC_GENRE" c:identifier="RYGEL_MEDIA_CONTAINER_MUSIC_GENRE" value="(null)">
			<type name="utf8" c:type="const gchar*"/>
		</constant>
		<constant name="PLAYLIST" c:identifier="RYGEL_MEDIA_CONTAINER_PLAYLIST" value="(null)">
			<type name="utf8" c:type="const gchar*"/>
		</constant>
		<constant name="ALBUM_SORT_CRITERIA" c:identifier="RYGEL_MEDIA_CONTAINER_ALBUM_SORT_CRITERIA" value="(null)">
			<type name="utf8" c:type="const gchar*"/>
		</constant>
		<function name="equal_func" c:identifier="rygel_media_container_equal_func">
			<return-value transfer-ownership="full">
				<type name="gboolean" c:type="gboolean"/>
			</return-value>
			<parameters>
				<parameter name="a" transfer-ownership="none">
					<type name="RygelServer.MediaContainer" c:type="RygelMediaContainer*"/>
				</parameter>
				<parameter name="b" transfer-ownership="none">
					<type name="RygelServer.MediaContainer" c:type="RygelMediaContainer*"/>
				</parameter>
			</parameters>
		</function>
		<method name="get_children" c:identifier="rygel_media_container_get_children">
			<return-value transfer-ownership="none">
				<type name="none"/>
			</return-value>
			<parameters>
				<parameter name="offset" transfer-ownership="none">
					<type name="guint" c:type="guint"/>
				</parameter>
				<parameter name="max_count" transfer-ownership="none">
					<type name="guint" c:type="guint"/>
				</parameter>
				<parameter name="sort_criteria" transfer-ownership="none">
					<type name="utf8" c:type="const gchar*"/>
				</parameter>
				<parameter name="cancellable" transfer-ownership="none" allow-none="1">
					<type name="Gio.Cancellable" c:type="GCancellable*"/>
				</parameter>
				<parameter name="_callback_" transfer-ownership="none" allow-none="1" closure="5" scope="async">
					<type name="Gio.AsyncReadyCallback" c:type="GAsyncReadyCallback"/>
				</parameter>
				<parameter name="_callback__target" transfer-ownership="none" allow-none="1">
					<type name="gpointer" c:type="void*"/>
				</parameter>
			</parameters>
		</method>
		<method name="get_children_finish" c:identifier="rygel_media_container_get_children_finish" throws="1">
			<return-value transfer-ownership="full" allow-none="1">
				<type name="RygelServer.MediaObjects" c:type="RygelMediaObjects*"/>
			</return-value>
			<parameters>
				<parameter name="_res_" transfer-ownership="none">
					<type name="Gio.AsyncResult" c:type="GAsyncResult*"/>
				</parameter>
			</parameters>
		</method>
		<virtual-method name="get_children" invoker="get_children">
			<return-value transfer-ownership="none">
				<type name="none"/>
			</return-value>
			<parameters>
				<parameter name="offset" transfer-ownership="none">
					<type name="guint" c:type="guint"/>
				</parameter>
				<parameter name="max_count" transfer-ownership="none">
					<type name="guint" c:type="guint"/>
				</parameter>
				<parameter name="sort_criteria" transfer-ownership="none">
					<type name="utf8" c:type="const gchar*"/>
				</parameter>
				<parameter name="cancellable" transfer-ownership="none" allow-none="1">
					<type name="Gio.Cancellable" c:type="GCancellable*"/>
				</parameter>
				<parameter name="_callback_" transfer-ownership="none" allow-none="1" closure="5" scope="async">
					<type name="Gio.AsyncReadyCallback" c:type="GAsyncReadyCallback"/>
				</parameter>
				<parameter name="_callback__target" transfer-ownership="none" allow-none="1">
					<type name="gpointer" c:type="void*"/>
				</parameter>
			</parameters>
		</virtual-method>
		<virtual-method name="get_children_finish" invoker="get_children_finish" throws="1">
			<return-value transfer-ownership="full" allow-none="1">
				<type name="RygelServer.MediaObjects" c:type="RygelMediaObjects*"/>
			</return-value>
			<parameters>
				<parameter name="_res_" transfer-ownership="none">
					<type name="Gio.AsyncResult" c:type="GAsyncResult*"/>
				</parameter>
			</parameters>
		</virtual-method>
		<method name="find_object" c:identifier="rygel_media_container_find_object">
			<return-value transfer-ownership="none">
				<type name="none"/>
			</return-value>
			<parameters>
				<parameter name="id" transfer-ownership="none">
					<type name="utf8" c:type="const gchar*"/>
				</parameter>
				<parameter name="cancellable" transfer-ownership="none" allow-none="1">
					<type name="Gio.Cancellable" c:type="GCancellable*"/>
				</parameter>
				<parameter name="_callback_" transfer-ownership="none" allow-none="1" closure="3" scope="async">
					<type name="Gio.AsyncReadyCallback" c:type="GAsyncReadyCallback"/>
				</parameter>
				<parameter name="_callback__target" transfer-ownership="none" allow-none="1">
					<type name="gpointer" c:type="void*"/>
				</parameter>
			</parameters>
		</method>
		<method name="find_object_finish" c:identifier="rygel_media_container_find_object_finish" throws="1">
			<return-value transfer-ownership="full" allow-none="1">
				<type name="RygelServer.MediaObject" c:type="RygelMediaObject*"/>
			</return-value>
			<parameters>
				<parameter name="_res_" transfer-ownership="none">
					<type name="Gio.AsyncResult" c:type="GAsyncResult*"/>
				</parameter>
			</parameters>
		</method>
		<virtual-method name="find_object" invoker="find_object">
			<return-value transfer-ownership="none">
				<type name="none"/>
			</return-value>
			<parameters>
				<parameter name="id" transfer-ownership="none">
					<type name="utf8" c:type="const gchar*"/>
				</parameter>
				<parameter name="cancellable" transfer-ownership="none" allow-none="1">
					<type name="Gio.Cancellable" c:type="GCancellable*"/>
				</parameter>
				<parameter name="_callback_" transfer-ownership="none" allow-none="1" closure="3" scope="async">
					<type name="Gio.AsyncReadyCallback" c:type="GAsyncReadyCallback"/>
				</parameter>
				<parameter name="_callback__target" transfer-ownership="none" allow-none="1">
					<type name="gpointer" c:type="void*"/>
				</parameter>
			</parameters>
		</virtual-method>
		<virtual-method name="find_object_finish" invoker="find_object_finish" throws="1">
			<return-value transfer-ownership="full" allow-none="1">
				<type name="RygelServer.MediaObject" c:type="RygelMediaObject*"/>
			</return-value>
			<parameters>
				<parameter name="_res_" transfer-ownership="none">
					<type name="Gio.AsyncResult" c:type="GAsyncResult*"/>
				</parameter>
			</parameters>
		</virtual-method>
		<method name="updated" c:identifier="rygel_media_container_updated">
			<return-value transfer-ownership="full">
				<type name="none"/>
			</return-value>
			<parameters>
				<parameter name="object" transfer-ownership="none" allow-none="1">
					<type name="RygelServer.MediaObject" c:type="RygelMediaObject*"/>
				</parameter>
				<parameter name="event_type" transfer-ownership="none">
					<type name="RygelServer.ObjectEventType" c:type="RygelObjectEventType"/>
				</parameter>
				<parameter name="sub_tree_update" transfer-ownership="none">
					<type name="gboolean" c:type="gboolean"/>
				</parameter>
			</parameters>
		</method>
		<property name="child-count" writable="1" construct="1">
			<type name="gint" c:type="gint"/>
		</property>
		<method name="get_child_count" c:identifier="rygel_media_container_get_child_count">
			<return-value transfer-ownership="none">
				<type name="gint" c:type="gint"/>
			</return-value>
		</method>
		<method name="set_child_count" c:identifier="rygel_media_container_set_child_count">
			<return-value transfer-ownership="none">
				<type name="none"/>
			</return-value>
			<parameters>
				<parameter name="value" transfer-ownership="none">
					<type name="gint" c:type="gint"/>
				</parameter>
			</parameters>
		</method>
		<property name="empty-child-count" writable="1">
			<type name="gint" c:type="gint"/>
		</property>
		<method name="get_empty_child_count" c:identifier="rygel_media_container_get_empty_child_count">
			<return-value transfer-ownership="none">
				<type name="gint" c:type="gint"/>
			</return-value>
		</method>
		<method name="set_empty_child_count" c:identifier="rygel_media_container_set_empty_child_count">
			<return-value transfer-ownership="none">
				<type name="none"/>
			</return-value>
			<parameters>
				<parameter name="value" transfer-ownership="none">
					<type name="gint" c:type="gint"/>
				</parameter>
			</parameters>
		</method>
		<property name="all-child-count">
			<type name="gint" c:type="gint"/>
		</property>
		<method name="get_all_child_count" c:identifier="rygel_media_container_get_all_child_count">
			<return-value transfer-ownership="none">
				<type name="gint" c:type="gint"/>
			</return-value>
		</method>
		<property name="create-mode-enabled" writable="1">
			<type name="gboolean" c:type="gboolean"/>
		</property>
		<method name="get_create_mode_enabled" c:identifier="rygel_media_container_get_create_mode_enabled">
			<return-value transfer-ownership="none">
				<type name="gboolean" c:type="gboolean"/>
			</return-value>
		</method>
		<method name="set_create_mode_enabled" c:identifier="rygel_media_container_set_create_mode_enabled">
			<return-value transfer-ownership="none">
				<type name="none"/>
			</return-value>
			<parameters>
				<parameter name="value" transfer-ownership="none">
					<type name="gboolean" c:type="gboolean"/>
				</parameter>
			</parameters>
		</method>
		<property name="sort-criteria" writable="1">
			<type name="utf8" c:type="gchar*"/>
		</property>
		<method name="get_sort_criteria" c:identifier="rygel_media_container_get_sort_criteria">
			<return-value transfer-ownership="none">
				<type name="utf8" c:type="const gchar*"/>
			</return-value>
		</method>
		<method name="set_sort_criteria" c:identifier="rygel_media_container_set_sort_criteria">
			<return-value transfer-ownership="none">
				<type name="none"/>
			</return-value>
			<parameters>
				<parameter name="value" transfer-ownership="none">
					<type name="utf8" c:type="const gchar*"/>
				</parameter>
			</parameters>
		</method>
		<glib:signal name="container_updated">
			<return-value transfer-ownership="full">
				<type name="none"/>
			</return-value>
			<parameters>
				<parameter name="container" transfer-ownership="none">
					<type name="RygelServer.MediaContainer" c:type="RygelMediaContainer*"/>
				</parameter>
				<parameter name="object" transfer-ownership="none">
					<type name="RygelServer.MediaObject" c:type="RygelMediaObject*"/>
				</parameter>
				<parameter name="event_type" transfer-ownership="none">
					<type name="RygelServer.ObjectEventType" c:type="RygelObjectEventType"/>
				</parameter>
				<parameter name="sub_tree_update" transfer-ownership="none">
					<type name="gboolean" c:type="gboolean"/>
				</parameter>
			</parameters>
		</glib:signal>
		<glib:signal name="sub_tree_updates_finished">
			<return-value transfer-ownership="full">
				<type name="none"/>
			</return-value>
			<parameters>
				<parameter name="sub_tree_root" transfer-ownership="none">
					<type name="RygelServer.MediaObject" c:type="RygelMediaObject*"/>
				</parameter>
			</parameters>
		</glib:signal>
	</class>
	<record name="MediaContainerClass" c:type="RygelMediaContainerClass" glib:is-gtype-struct-for="MediaContainer">
		<field name="parent_class">
			<type name="RygelServer.MediaObjectClass" c:type="RygelMediaObjectClass"/>
		</field>
				<field name="get_children">
			<callback name="get_children" c:type="get_children">
				<return-value transfer-ownership="none">
					<type name="none"/>
				</return-value>
				<parameters>
					<parameter name="self" transfer-ownership="none">
						<type name="RygelServer.MediaContainer" c:type="RygelMediaContainer*"/>
					</parameter>
					<parameter name="offset" transfer-ownership="none">
						<type name="guint" c:type="guint"/>
					</parameter>
					<parameter name="max_count" transfer-ownership="none">
						<type name="guint" c:type="guint"/>
					</parameter>
					<parameter name="sort_criteria" transfer-ownership="none">
						<type name="utf8" c:type="const gchar*"/>
					</parameter>
					<parameter name="cancellable" transfer-ownership="none" allow-none="1">
						<type name="Gio.Cancellable" c:type="GCancellable*"/>
					</parameter>
					<parameter name="_callback_" transfer-ownership="none" allow-none="1" closure="6" scope="async">
						<type name="Gio.AsyncReadyCallback" c:type="GAsyncReadyCallback"/>
					</parameter>
					<parameter name="_callback__target" transfer-ownership="none" allow-none="1">
						<type name="gpointer" c:type="void*"/>
					</parameter>
				</parameters>
			</callback>
		</field>
		<field name="get_children_finish">
			<callback name="get_children_finish" c:type="get_children_finish" throws="1">
				<return-value transfer-ownership="full" allow-none="1">
					<type name="RygelServer.MediaObjects" c:type="RygelMediaObjects*"/>
				</return-value>
				<parameters>
					<parameter name="self" transfer-ownership="none">
						<type name="RygelServer.MediaContainer" c:type="RygelMediaContainer*"/>
					</parameter>
					<parameter name="_res_" transfer-ownership="none">
						<type name="Gio.AsyncResult" c:type="GAsyncResult*"/>
					</parameter>
				</parameters>
			</callback>
		</field>
				<field name="find_object">
			<callback name="find_object" c:type="find_object">
				<return-value transfer-ownership="none">
					<type name="none"/>
				</return-value>
				<parameters>
					<parameter name="self" transfer-ownership="none">
						<type name="RygelServer.MediaContainer" c:type="RygelMediaContainer*"/>
					</parameter>
					<parameter name="id" transfer-ownership="none">
						<type name="utf8" c:type="const gchar*"/>
					</parameter>
					<parameter name="cancellable" transfer-ownership="none" allow-none="1">
						<type name="Gio.Cancellable" c:type="GCancellable*"/>
					</parameter>
					<parameter name="_callback_" transfer-ownership="none" allow-none="1" closure="4" scope="async">
						<type name="Gio.AsyncReadyCallback" c:type="GAsyncReadyCallback"/>
					</parameter>
					<parameter name="_callback__target" transfer-ownership="none" allow-none="1">
						<type name="gpointer" c:type="void*"/>
					</parameter>
				</parameters>
			</callback>
		</field>
		<field name="find_object_finish">
			<callback name="find_object_finish" c:type="find_object_finish" throws="1">
				<return-value transfer-ownership="full" allow-none="1">
					<type name="RygelServer.MediaObject" c:type="RygelMediaObject*"/>
				</return-value>
				<parameters>
					<parameter name="self" transfer-ownership="none">
						<type name="RygelServer.MediaContainer" c:type="RygelMediaContainer*"/>
					</parameter>
					<parameter name="_res_" transfer-ownership="none">
						<type name="Gio.AsyncResult" c:type="GAsyncResult*"/>
					</parameter>
				</parameters>
			</callback>
		</field>
	</record>
	<record name="MediaContainerPrivate" c:type="RygelMediaContainerPrivate" disguised="1"/>
	<class name="MediaItem" c:type="RygelMediaItem" glib:type-name="RygelMediaItem" glib:get-type="rygel_media_item_get_type" glib:type-struct="MediaItemClass" parent="RygelServer.MediaObject" abstract="1">
		<field name="parent_instance">
			<type name="RygelServer.MediaObject" c:type="RygelMediaObject"/>
		</field>
		<field name="priv">
			<type name="MediaItemPrivate" c:type="RygelMediaItemPrivate*"/>
		</field>
		<constant name="UPNP_CLASS" c:identifier="RYGEL_MEDIA_ITEM_UPNP_CLASS" value="objec.item">
			<type name="utf8" c:type="const gchar*"/>
		</constant>
		<property name="description" writable="1">
			<type name="utf8" c:type="gchar*"/>
		</property>
		<method name="get_description" c:identifier="rygel_media_item_get_description">
			<return-value transfer-ownership="none">
				<type name="utf8" c:type="const gchar*"/>
			</return-value>
		</method>
		<method name="set_description" c:identifier="rygel_media_item_set_description">
			<return-value transfer-ownership="none">
				<type name="none"/>
			</return-value>
			<parameters>
				<parameter name="value" transfer-ownership="none">
					<type name="utf8" c:type="const gchar*"/>
				</parameter>
			</parameters>
		</method>
	</class>
	<record name="MediaItemClass" c:type="RygelMediaItemClass" glib:is-gtype-struct-for="MediaItem">
		<field name="parent_class">
			<type name="RygelServer.MediaObjectClass" c:type="RygelMediaObjectClass"/>
		</field>
	</record>
	<record name="MediaItemPrivate" c:type="RygelMediaItemPrivate" disguised="1"/>
	<class name="MediaFileItem" c:type="RygelMediaFileItem" glib:type-name="RygelMediaFileItem" glib:get-type="rygel_media_file_item_get_type" glib:type-struct="MediaFileItemClass" parent="RygelServer.MediaItem" abstract="1">
		<field name="parent_instance">
			<type name="RygelServer.MediaItem" c:type="RygelMediaItem"/>
		</field>
		<field name="priv">
			<type name="MediaFileItemPrivate" c:type="RygelMediaFileItemPrivate*"/>
		</field>
		<field name="rygel_media_file_item_address_regex">
			<type name="GLib.Regex" c:type="GRegex*"/>
		</field>
		<field name="rygel_media_file_item_mime_to_ext">
			<type name="Gee.HashMap" c:type="GeeHashMap*">
				<type name="utf8" c:type="gchar*"/>
				<type name="utf8" c:type="gchar*"/>
			</type>
		</field>
		<method name="get_primary_resource" c:identifier="rygel_media_file_item_get_primary_resource">
			<return-value transfer-ownership="full">
				<type name="RygelServer.MediaResource" c:type="RygelMediaResource*"/>
			</return-value>
		</method>
		<virtual-method name="get_primary_resource" invoker="get_primary_resource">
			<return-value transfer-ownership="full">
				<type name="RygelServer.MediaResource" c:type="RygelMediaResource*"/>
			</return-value>
		</virtual-method>
		<method name="get_extension" c:identifier="rygel_media_file_item_get_extension">
			<return-value transfer-ownership="full">
				<type name="utf8" c:type="gchar*"/>
			</return-value>
		</method>
		<virtual-method name="get_extension" invoker="get_extension">
			<return-value transfer-ownership="full">
				<type name="utf8" c:type="gchar*"/>
			</return-value>
		</virtual-method>
		<method name="ext_from_mime_type" c:identifier="rygel_media_file_item_ext_from_mime_type">
			<return-value transfer-ownership="full">
				<type name="utf8" c:type="gchar*"/>
			</return-value>
			<parameters>
				<parameter name="mime_type" transfer-ownership="none">
					<type name="utf8" c:type="const gchar*"/>
				</parameter>
			</parameters>
		</method>
		<method name="add_engine_resources" c:identifier="rygel_media_file_item_add_engine_resources">
			<return-value transfer-ownership="none">
				<type name="none"/>
			</return-value>
			<parameters>
				<parameter name="_callback_" transfer-ownership="none" allow-none="1" closure="1" scope="async">
					<type name="Gio.AsyncReadyCallback" c:type="GAsyncReadyCallback"/>
				</parameter>
				<parameter name="_callback__target" transfer-ownership="none" allow-none="1">
					<type name="gpointer" c:type="void*"/>
				</parameter>
			</parameters>
		</method>
		<method name="add_engine_resources_finish" c:identifier="rygel_media_file_item_add_engine_resources_finish">
			<return-value transfer-ownership="full">
				<type name="none"/>
			</return-value>
			<parameters>
				<parameter name="_res_" transfer-ownership="none">
					<type name="Gio.AsyncResult" c:type="GAsyncResult*"/>
				</parameter>
			</parameters>
		</method>
		<virtual-method name="add_engine_resources" invoker="add_engine_resources">
			<return-value transfer-ownership="none">
				<type name="none"/>
			</return-value>
			<parameters>
				<parameter name="_callback_" transfer-ownership="none" allow-none="1" closure="1" scope="async">
					<type name="Gio.AsyncReadyCallback" c:type="GAsyncReadyCallback"/>
				</parameter>
				<parameter name="_callback__target" transfer-ownership="none" allow-none="1">
					<type name="gpointer" c:type="void*"/>
				</parameter>
			</parameters>
		</virtual-method>
		<virtual-method name="add_engine_resources_finish" invoker="add_engine_resources_finish">
			<return-value transfer-ownership="full">
				<type name="none"/>
			</return-value>
			<parameters>
				<parameter name="_res_" transfer-ownership="none">
					<type name="Gio.AsyncResult" c:type="GAsyncResult*"/>
				</parameter>
			</parameters>
		</virtual-method>
		<property name="mime-type" writable="1">
			<type name="utf8" c:type="gchar*"/>
		</property>
		<method name="get_mime_type" c:identifier="rygel_media_file_item_get_mime_type">
			<return-value transfer-ownership="none">
				<type name="utf8" c:type="const gchar*"/>
			</return-value>
		</method>
		<method name="set_mime_type" c:identifier="rygel_media_file_item_set_mime_type">
			<return-value transfer-ownership="none">
				<type name="none"/>
			</return-value>
			<parameters>
				<parameter name="value" transfer-ownership="none">
					<type name="utf8" c:type="const gchar*"/>
				</parameter>
			</parameters>
		</method>
		<property name="dlna-profile" writable="1">
			<type name="utf8" c:type="gchar*"/>
		</property>
		<method name="get_dlna_profile" c:identifier="rygel_media_file_item_get_dlna_profile">
			<return-value transfer-ownership="none">
				<type name="utf8" c:type="const gchar*"/>
			</return-value>
		</method>
		<method name="set_dlna_profile" c:identifier="rygel_media_file_item_set_dlna_profile">
			<return-value transfer-ownership="none">
				<type name="none"/>
			</return-value>
			<parameters>
				<parameter name="value" transfer-ownership="none">
					<type name="utf8" c:type="const gchar*"/>
				</parameter>
			</parameters>
		</method>
		<property name="size" writable="1">
			<type name="gint64" c:type="gint64"/>
		</property>
		<method name="get_size" c:identifier="rygel_media_file_item_get_size">
			<return-value transfer-ownership="none">
				<type name="gint64" c:type="gint64"/>
			</return-value>
		</method>
		<method name="set_size" c:identifier="rygel_media_file_item_set_size">
			<return-value transfer-ownership="none">
				<type name="none"/>
			</return-value>
			<parameters>
				<parameter name="value" transfer-ownership="none">
					<type name="gint64" c:type="gint64"/>
				</parameter>
			</parameters>
		</method>
		<property name="place-holder" writable="1">
			<type name="gboolean" c:type="gboolean"/>
		</property>
		<method name="get_place_holder" c:identifier="rygel_media_file_item_get_place_holder">
			<return-value transfer-ownership="none">
				<type name="gboolean" c:type="gboolean"/>
			</return-value>
		</method>
		<method name="set_place_holder" c:identifier="rygel_media_file_item_set_place_holder">
			<return-value transfer-ownership="none">
				<type name="none"/>
			</return-value>
			<parameters>
				<parameter name="value" transfer-ownership="none">
					<type name="gboolean" c:type="gboolean"/>
				</parameter>
			</parameters>
		</method>
	</class>
	<record name="MediaFileItemClass" c:type="RygelMediaFileItemClass" glib:is-gtype-struct-for="MediaFileItem">
		<field name="parent_class">
			<type name="RygelServer.MediaItemClass" c:type="RygelMediaItemClass"/>
		</field>
				<field name="get_primary_resource">
			<callback name="get_primary_resource" c:type="get_primary_resource">
				<return-value transfer-ownership="full">
					<type name="RygelServer.MediaResource" c:type="RygelMediaResource*"/>
				</return-value>
				<parameters>
					<parameter name="self" transfer-ownership="none">
						<type name="RygelServer.MediaFileItem" c:type="RygelMediaFileItem*"/>
					</parameter>
				</parameters>
			</callback>
		</field>
				<field name="get_extension">
			<callback name="get_extension" c:type="get_extension">
				<return-value transfer-ownership="full">
					<type name="utf8" c:type="gchar*"/>
				</return-value>
				<parameters>
					<parameter name="self" transfer-ownership="none">
						<type name="RygelServer.MediaFileItem" c:type="RygelMediaFileItem*"/>
					</parameter>
				</parameters>
			</callback>
		</field>
				<field name="add_engine_resources">
			<callback name="add_engine_resources" c:type="add_engine_resources">
				<return-value transfer-ownership="none">
					<type name="none"/>
				</return-value>
				<parameters>
					<parameter name="self" transfer-ownership="none">
						<type name="RygelServer.MediaFileItem" c:type="RygelMediaFileItem*"/>
					</parameter>
					<parameter name="_callback_" transfer-ownership="none" allow-none="1" closure="2" scope="async">
						<type name="Gio.AsyncReadyCallback" c:type="GAsyncReadyCallback"/>
					</parameter>
					<parameter name="_callback__target" transfer-ownership="none" allow-none="1">
						<type name="gpointer" c:type="void*"/>
					</parameter>
				</parameters>
			</callback>
		</field>
		<field name="add_engine_resources_finish">
			<callback name="add_engine_resources_finish" c:type="add_engine_resources_finish">
				<return-value transfer-ownership="full">
					<type name="none"/>
				</return-value>
				<parameters>
					<parameter name="self" transfer-ownership="none">
						<type name="RygelServer.MediaFileItem" c:type="RygelMediaFileItem*"/>
					</parameter>
					<parameter name="_res_" transfer-ownership="none">
						<type name="Gio.AsyncResult" c:type="GAsyncResult*"/>
					</parameter>
				</parameters>
			</callback>
		</field>
				<field name="add_additional_resources">
			<callback name="add_additional_resources" c:type="add_additional_resources">
				<return-value transfer-ownership="full">
					<type name="none"/>
				</return-value>
				<parameters>
					<parameter name="self" transfer-ownership="none">
						<type name="RygelServer.MediaFileItem" c:type="RygelMediaFileItem*"/>
					</parameter>
					<parameter name="server" transfer-ownership="none">
						<type name="RygelServer.HTTPServer" c:type="RygelHTTPServer*"/>
					</parameter>
				</parameters>
			</callback>
		</field>
	</record>
	<record name="MediaFileItemPrivate" c:type="RygelMediaFileItemPrivate" disguised="1"/>
	<class name="MediaObject" c:type="RygelMediaObject" glib:type-name="RygelMediaObject" glib:get-type="rygel_media_object_get_type" glib:type-struct="MediaObjectClass" parent="GObject.Object" abstract="1">
		<field name="parent_instance">
			<type name="GObject.Object" c:type="GObject"/>
		</field>
		<field name="priv">
			<type name="MediaObjectPrivate" c:type="RygelMediaObjectPrivate*"/>
		</field>
		<field name="parent_ptr">
			<type name="RygelServer.MediaContainer" c:type="RygelMediaContainer*"/>
		</field>
		<method name="get_uris" c:identifier="rygel_media_object_get_uris">
			<return-value transfer-ownership="full">
				<type name="Gee.List" c:type="GeeList*">
					<type name="utf8" c:type="gchar*"/>
				</type>
			</return-value>
		</method>
		<method name="get_primary_uri" c:identifier="rygel_media_object_get_primary_uri">
			<return-value transfer-ownership="full" allow-none="1">
				<type name="utf8" c:type="gchar*"/>
			</return-value>
		</method>
		<method name="add_uri" c:identifier="rygel_media_object_add_uri">
			<return-value transfer-ownership="full">
				<type name="none"/>
			</return-value>
			<parameters>
				<parameter name="uri" transfer-ownership="none">
					<type name="utf8" c:type="const gchar*"/>
				</parameter>
			</parameters>
		</method>
		<virtual-method name="add_uri" invoker="add_uri">
			<return-value transfer-ownership="full">
				<type name="none"/>
			</return-value>
			<parameters>
				<parameter name="uri" transfer-ownership="none">
					<type name="utf8" c:type="const gchar*"/>
				</parameter>
			</parameters>
		</virtual-method>
		<method name="get_writable" c:identifier="rygel_media_object_get_writable">
			<return-value transfer-ownership="none">
				<type name="none"/>
			</return-value>
			<parameters>
				<parameter name="cancellable" transfer-ownership="none" allow-none="1">
					<type name="Gio.Cancellable" c:type="GCancellable*"/>
				</parameter>
				<parameter name="_callback_" transfer-ownership="none" allow-none="1" closure="2" scope="async">
					<type name="Gio.AsyncReadyCallback" c:type="GAsyncReadyCallback"/>
				</parameter>
				<parameter name="_callback__target" transfer-ownership="none" allow-none="1">
					<type name="gpointer" c:type="void*"/>
				</parameter>
			</parameters>
		</method>
		<method name="get_writable_finish" c:identifier="rygel_media_object_get_writable_finish" throws="1">
			<return-value transfer-ownership="full" allow-none="1">
				<type name="Gio.File" c:type="GFile*"/>
			</return-value>
			<parameters>
				<parameter name="_res_" transfer-ownership="none">
					<type name="Gio.AsyncResult" c:type="GAsyncResult*"/>
				</parameter>
			</parameters>
		</method>
		<method name="get_writables" c:identifier="rygel_media_object_get_writables">
			<return-value transfer-ownership="none">
				<type name="none"/>
			</return-value>
			<parameters>
				<parameter name="cancellable" transfer-ownership="none" allow-none="1">
					<type name="Gio.Cancellable" c:type="GCancellable*"/>
				</parameter>
				<parameter name="_callback_" transfer-ownership="none" allow-none="1" closure="2" scope="async">
					<type name="Gio.AsyncReadyCallback" c:type="GAsyncReadyCallback"/>
				</parameter>
				<parameter name="_callback__target" transfer-ownership="none" allow-none="1">
					<type name="gpointer" c:type="void*"/>
				</parameter>
			</parameters>
		</method>
		<method name="get_writables_finish" c:identifier="rygel_media_object_get_writables_finish" throws="1">
			<return-value transfer-ownership="full">
				<type name="Gee.ArrayList" c:type="GeeArrayList*">
					<type name="Gio.File" c:type="GFile*"/>
				</type>
			</return-value>
			<parameters>
				<parameter name="_res_" transfer-ownership="none">
					<type name="Gio.AsyncResult" c:type="GAsyncResult*"/>
				</parameter>
			</parameters>
		</method>
		<method name="get_resource_list" c:identifier="rygel_media_object_get_resource_list">
			<return-value transfer-ownership="full">
				<type name="Gee.List" c:type="GeeList*">
					<type name="RygelServer.MediaResource" c:type="RygelMediaResource*"/>
				</type>
			</return-value>
		</method>
		<method name="get_resource_by_name" c:identifier="rygel_media_object_get_resource_by_name">
			<return-value transfer-ownership="full" allow-none="1">
				<type name="RygelServer.MediaResource" c:type="RygelMediaResource*"/>
			</return-value>
			<parameters>
				<parameter name="resource_name" transfer-ownership="none">
					<type name="utf8" c:type="const gchar*"/>
				</parameter>
			</parameters>
		</method>
		<method name="serialize" c:identifier="rygel_media_object_serialize" throws="1">
			<return-value transfer-ownership="full" allow-none="1">
				<type name="GUPnPAV.DIDLLiteObject" c:type="GUPnPDIDLLiteObject*"/>
			</return-value>
			<parameters>
				<parameter name="serializer" transfer-ownership="none">
					<type name="RygelServer.Serializer" c:type="RygelSerializer*"/>
				</parameter>
				<parameter name="http_server" transfer-ownership="none">
					<type name="RygelServer.HTTPServer" c:type="RygelHTTPServer*"/>
				</parameter>
			</parameters>
		</method>
		<virtual-method name="serialize" invoker="serialize" throws="1">
			<return-value transfer-ownership="full" allow-none="1">
				<type name="GUPnPAV.DIDLLiteObject" c:type="GUPnPDIDLLiteObject*"/>
			</return-value>
			<parameters>
				<parameter name="serializer" transfer-ownership="none">
					<type name="RygelServer.Serializer" c:type="RygelSerializer*"/>
				</parameter>
				<parameter name="http_server" transfer-ownership="none">
					<type name="RygelServer.HTTPServer" c:type="RygelHTTPServer*"/>
				</parameter>
			</parameters>
		</virtual-method>
		<method name="serialize_resource_list" c:identifier="rygel_media_object_serialize_resource_list" throws="1">
			<return-value transfer-ownership="full">
				<type name="none"/>
			</return-value>
			<parameters>
				<parameter name="didl_object" transfer-ownership="none">
					<type name="GUPnPAV.DIDLLiteObject" c:type="GUPnPDIDLLiteObject*"/>
				</parameter>
				<parameter name="http_server" transfer-ownership="none">
					<type name="RygelServer.HTTPServer" c:type="RygelHTTPServer*"/>
				</parameter>
			</parameters>
		</method>
		<function name="apply_replacements" c:identifier="rygel_media_object_apply_replacements">
			<return-value transfer-ownership="full" allow-none="1">
				<type name="utf8" c:type="gchar*"/>
			</return-value>
			<parameters>
				<parameter name="replacement_pairs" transfer-ownership="none">
					<type name="GLib.HashTable" c:type="GHashTable*">
						<type name="utf8" c:type="gchar*"/>
						<type name="utf8" c:type="gchar*"/>
					</type>
				</parameter>
				<parameter name="source_string" transfer-ownership="none" allow-none="1">
					<type name="utf8" c:type="const gchar*"/>
				</parameter>
			</parameters>
		</function>
		<method name="create_stream_source_for_resource" c:identifier="rygel_media_object_create_stream_source_for_resource" throws="1">
			<return-value transfer-ownership="full" allow-none="1">
				<type name="RygelServer.DataSource" c:type="RygelDataSource*"/>
			</return-value>
			<parameters>
				<parameter name="request" transfer-ownership="none">
					<type name="RygelServer.HTTPRequest" c:type="RygelHTTPRequest*"/>
				</parameter>
				<parameter name="resource" transfer-ownership="none">
					<type name="RygelServer.MediaResource" c:type="RygelMediaResource*"/>
				</parameter>
			</parameters>
		</method>
		<virtual-method name="create_stream_source_for_resource" invoker="create_stream_source_for_resource" throws="1">
			<return-value transfer-ownership="full" allow-none="1">
				<type name="RygelServer.DataSource" c:type="RygelDataSource*"/>
			</return-value>
			<parameters>
				<parameter name="request" transfer-ownership="none">
					<type name="RygelServer.HTTPRequest" c:type="RygelHTTPRequest*"/>
				</parameter>
				<parameter name="resource" transfer-ownership="none">
					<type name="RygelServer.MediaResource" c:type="RygelMediaResource*"/>
				</parameter>
			</parameters>
		</virtual-method>
		<method name="compare_string_props" c:identifier="rygel_media_object_compare_string_props">
			<return-value transfer-ownership="full">
				<type name="gint" c:type="gint"/>
			</return-value>
			<parameters>
				<parameter name="prop1" transfer-ownership="none">
					<type name="utf8" c:type="const gchar*"/>
				</parameter>
				<parameter name="prop2" transfer-ownership="none">
					<type name="utf8" c:type="const gchar*"/>
				</parameter>
			</parameters>
		</method>
		<method name="compare_int_props" c:identifier="rygel_media_object_compare_int_props">
			<return-value transfer-ownership="full">
				<type name="gint" c:type="gint"/>
			</return-value>
			<parameters>
				<parameter name="prop1" transfer-ownership="none">
					<type name="gint" c:type="gint"/>
				</parameter>
				<parameter name="prop2" transfer-ownership="none">
					<type name="gint" c:type="gint"/>
				</parameter>
			</parameters>
		</method>
		<property name="id" writable="1" construct="1">
			<type name="utf8" c:type="gchar*"/>
		</property>
		<method name="get_id" c:identifier="rygel_media_object_get_id">
			<return-value transfer-ownership="none">
				<type name="utf8" c:type="const gchar*"/>
			</return-value>
		</method>
		<method name="set_id" c:identifier="rygel_media_object_set_id">
			<return-value transfer-ownership="none">
				<type name="none"/>
			</return-value>
			<parameters>
				<parameter name="value" transfer-ownership="none">
					<type name="utf8" c:type="const gchar*"/>
				</parameter>
			</parameters>
		</method>
		<property name="ref-id" writable="1">
			<type name="utf8" c:type="gchar*"/>
		</property>
		<method name="get_ref_id" c:identifier="rygel_media_object_get_ref_id">
			<return-value transfer-ownership="none">
				<type name="utf8" c:type="const gchar*"/>
			</return-value>
		</method>
		<method name="set_ref_id" c:identifier="rygel_media_object_set_ref_id">
			<return-value transfer-ownership="none">
				<type name="none"/>
			</return-value>
			<parameters>
				<parameter name="value" transfer-ownership="none">
					<type name="utf8" c:type="const gchar*"/>
				</parameter>
			</parameters>
		</method>
		<property name="upnp-class" writable="1" construct="1">
			<type name="utf8" c:type="gchar*"/>
		</property>
		<method name="get_upnp_class" c:identifier="rygel_media_object_get_upnp_class">
			<return-value transfer-ownership="none">
				<type name="utf8" c:type="const gchar*"/>
			</return-value>
		</method>
		<method name="set_upnp_class" c:identifier="rygel_media_object_set_upnp_class">
			<return-value transfer-ownership="none">
				<type name="none"/>
			</return-value>
			<parameters>
				<parameter name="value" transfer-ownership="none">
					<type name="utf8" c:type="const gchar*"/>
				</parameter>
			</parameters>
		</method>
		<property name="date" writable="1">
			<type name="utf8" c:type="gchar*"/>
		</property>
		<method name="get_date" c:identifier="rygel_media_object_get_date">
			<return-value transfer-ownership="none">
				<type name="utf8" c:type="const gchar*"/>
			</return-value>
		</method>
		<method name="set_date" c:identifier="rygel_media_object_set_date">
			<return-value transfer-ownership="none">
				<type name="none"/>
			</return-value>
			<parameters>
				<parameter name="value" transfer-ownership="none">
					<type name="utf8" c:type="const gchar*"/>
				</parameter>
			</parameters>
		</method>
		<property name="creator" writable="1">
			<type name="utf8" c:type="gchar*"/>
		</property>
		<method name="get_creator" c:identifier="rygel_media_object_get_creator">
			<return-value transfer-ownership="none">
				<type name="utf8" c:type="const gchar*"/>
			</return-value>
		</method>
		<method name="set_creator" c:identifier="rygel_media_object_set_creator">
			<return-value transfer-ownership="none">
				<type name="none"/>
			</return-value>
			<parameters>
				<parameter name="value" transfer-ownership="none">
					<type name="utf8" c:type="const gchar*"/>
				</parameter>
			</parameters>
		</method>
		<property name="modified" writable="1">
			<type name="guint64" c:type="guint64"/>
		</property>
		<method name="get_modified" c:identifier="rygel_media_object_get_modified">
			<return-value transfer-ownership="none">
				<type name="guint64" c:type="guint64"/>
			</return-value>
		</method>
		<method name="set_modified" c:identifier="rygel_media_object_set_modified">
			<return-value transfer-ownership="none">
				<type name="none"/>
			</return-value>
			<parameters>
				<parameter name="value" transfer-ownership="none">
					<type name="guint64" c:type="guint64"/>
				</parameter>
			</parameters>
		</method>
		<property name="object-update-id" writable="1">
			<type name="guint" c:type="guint"/>
		</property>
		<method name="get_object_update_id" c:identifier="rygel_media_object_get_object_update_id">
			<return-value transfer-ownership="none">
				<type name="guint" c:type="guint"/>
			</return-value>
		</method>
		<method name="set_object_update_id" c:identifier="rygel_media_object_set_object_update_id">
			<return-value transfer-ownership="none">
				<type name="none"/>
			</return-value>
			<parameters>
				<parameter name="value" transfer-ownership="none">
					<type name="guint" c:type="guint"/>
				</parameter>
			</parameters>
		</method>
		<property name="artist" writable="1">
			<type name="utf8" c:type="gchar*"/>
		</property>
		<method name="get_artist" c:identifier="rygel_media_object_get_artist">
			<return-value transfer-ownership="none">
				<type name="utf8" c:type="const gchar*"/>
			</return-value>
		</method>
		<method name="set_artist" c:identifier="rygel_media_object_set_artist">
			<return-value transfer-ownership="none">
				<type name="none"/>
			</return-value>
			<parameters>
				<parameter name="value" transfer-ownership="none">
					<type name="utf8" c:type="const gchar*"/>
				</parameter>
			</parameters>
		</method>
		<property name="genre" writable="1">
			<type name="utf8" c:type="gchar*"/>
		</property>
		<method name="get_genre" c:identifier="rygel_media_object_get_genre">
			<return-value transfer-ownership="none">
				<type name="utf8" c:type="const gchar*"/>
			</return-value>
		</method>
		<method name="set_genre" c:identifier="rygel_media_object_set_genre">
			<return-value transfer-ownership="none">
				<type name="none"/>
			</return-value>
			<parameters>
				<parameter name="value" transfer-ownership="none">
					<type name="utf8" c:type="const gchar*"/>
				</parameter>
			</parameters>
		</method>
		<property name="parent" writable="1" construct="1">
			<type name="RygelServer.MediaContainer" c:type="RygelMediaContainer*"/>
		</property>
		<method name="get_parent" c:identifier="rygel_media_object_get_parent">
			<return-value transfer-ownership="none">
				<type name="RygelServer.MediaContainer" c:type="RygelMediaContainer*"/>
			</return-value>
		</method>
		<method name="set_parent" c:identifier="rygel_media_object_set_parent">
			<return-value transfer-ownership="none">
				<type name="none"/>
			</return-value>
			<parameters>
				<parameter name="value" transfer-ownership="none">
					<type name="RygelServer.MediaContainer" c:type="RygelMediaContainer*"/>
				</parameter>
			</parameters>
		</method>
		<property name="parent-ref" writable="1">
			<type name="RygelServer.MediaContainer" c:type="RygelMediaContainer*"/>
		</property>
		<method name="get_parent_ref" c:identifier="rygel_media_object_get_parent_ref">
			<return-value transfer-ownership="none">
				<type name="RygelServer.MediaContainer" c:type="RygelMediaContainer*"/>
			</return-value>
		</method>
		<method name="set_parent_ref" c:identifier="rygel_media_object_set_parent_ref">
			<return-value transfer-ownership="none">
				<type name="none"/>
			</return-value>
			<parameters>
				<parameter name="value" transfer-ownership="none">
					<type name="RygelServer.MediaContainer" c:type="RygelMediaContainer*"/>
				</parameter>
			</parameters>
		</method>
		<property name="title" writable="1" construct="1">
			<type name="utf8" c:type="gchar*"/>
		</property>
		<method name="get_title" c:identifier="rygel_media_object_get_title">
			<return-value transfer-ownership="none">
				<type name="utf8" c:type="const gchar*"/>
			</return-value>
		</method>
		<method name="set_title" c:identifier="rygel_media_object_set_title">
			<return-value transfer-ownership="none">
				<type name="none"/>
			</return-value>
			<parameters>
				<parameter name="value" transfer-ownership="none">
					<type name="utf8" c:type="const gchar*"/>
				</parameter>
			</parameters>
		</method>
		<property name="ocm-flags">
			<type name="GUPnPAV.OCMFlags" c:type="GUPnPOCMFlags"/>
		</property>
		<method name="get_ocm_flags" c:identifier="rygel_media_object_get_ocm_flags">
			<return-value transfer-ownership="none">
				<type name="GUPnPAV.OCMFlags" c:type="GUPnPOCMFlags"/>
			</return-value>
		</method>
		<virtual-method name="get_ocm_flags" invoker="get_ocm_flags">
			<return-value transfer-ownership="none">
				<type name="GUPnPAV.OCMFlags" c:type="GUPnPOCMFlags"/>
			</return-value>
		</virtual-method>
	</class>
	<record name="MediaObjectClass" c:type="RygelMediaObjectClass" glib:is-gtype-struct-for="MediaObject">
		<field name="parent_class">
			<type name="GObject.ObjectClass" c:type="GObjectClass"/>
		</field>
				<field name="add_uri">
			<callback name="add_uri" c:type="add_uri">
				<return-value transfer-ownership="full">
					<type name="none"/>
				</return-value>
				<parameters>
					<parameter name="self" transfer-ownership="none">
						<type name="RygelServer.MediaObject" c:type="RygelMediaObject*"/>
					</parameter>
					<parameter name="uri" transfer-ownership="none">
						<type name="utf8" c:type="const gchar*"/>
					</parameter>
				</parameters>
			</callback>
		</field>
				<field name="serialize">
			<callback name="serialize" c:type="serialize" throws="1">
				<return-value transfer-ownership="full" allow-none="1">
					<type name="GUPnPAV.DIDLLiteObject" c:type="GUPnPDIDLLiteObject*"/>
				</return-value>
				<parameters>
					<parameter name="self" transfer-ownership="none">
						<type name="RygelServer.MediaObject" c:type="RygelMediaObject*"/>
					</parameter>
					<parameter name="serializer" transfer-ownership="none">
						<type name="RygelServer.Serializer" c:type="RygelSerializer*"/>
					</parameter>
					<parameter name="http_server" transfer-ownership="none">
						<type name="RygelServer.HTTPServer" c:type="RygelHTTPServer*"/>
					</parameter>
				</parameters>
			</callback>
		</field>
				<field name="create_stream_source_for_resource">
			<callback name="create_stream_source_for_resource" c:type="create_stream_source_for_resource" throws="1">
				<return-value transfer-ownership="full" allow-none="1">
					<type name="RygelServer.DataSource" c:type="RygelDataSource*"/>
				</return-value>
				<parameters>
					<parameter name="self" transfer-ownership="none">
						<type name="RygelServer.MediaObject" c:type="RygelMediaObject*"/>
					</parameter>
					<parameter name="request" transfer-ownership="none">
						<type name="RygelServer.HTTPRequest" c:type="RygelHTTPRequest*"/>
					</parameter>
					<parameter name="resource" transfer-ownership="none">
						<type name="RygelServer.MediaResource" c:type="RygelMediaResource*"/>
					</parameter>
				</parameters>
			</callback>
		</field>
				<field name="apply_didl_lite">
			<callback name="apply_didl_lite" c:type="apply_didl_lite">
				<return-value transfer-ownership="full">
					<type name="none"/>
				</return-value>
				<parameters>
					<parameter name="self" transfer-ownership="none">
						<type name="RygelServer.MediaObject" c:type="RygelMediaObject*"/>
					</parameter>
					<parameter name="didl_object" transfer-ownership="none">
						<type name="GUPnPAV.DIDLLiteObject" c:type="GUPnPDIDLLiteObject*"/>
					</parameter>
				</parameters>
			</callback>
		</field>
				<field name="compare_by_property">
			<callback name="compare_by_property" c:type="compare_by_property">
				<return-value transfer-ownership="full">
					<type name="gint" c:type="gint"/>
				</return-value>
				<parameters>
					<parameter name="self" transfer-ownership="none">
						<type name="RygelServer.MediaObject" c:type="RygelMediaObject*"/>
					</parameter>
					<parameter name="media_object" transfer-ownership="none">
						<type name="RygelServer.MediaObject" c:type="RygelMediaObject*"/>
					</parameter>
					<parameter name="property" transfer-ownership="none">
						<type name="utf8" c:type="const gchar*"/>
					</parameter>
				</parameters>
			</callback>
		</field>
	</record>
	<record name="MediaObjectPrivate" c:type="RygelMediaObjectPrivate" disguised="1"/>
	<class name="MediaResource" c:type="RygelMediaResource" glib:type-name="RygelMediaResource" glib:get-type="rygel_media_resource_get_type" glib:type-struct="MediaResourceClass" parent="GObject.Object">
		<field name="parent_instance">
			<type name="GObject.Object" c:type="GObject"/>
		</field>
		<field name="priv">
			<type name="MediaResourcePrivate" c:type="RygelMediaResourcePrivate*"/>
		</field>
		<field name="play_speeds">
			<array>
				<type name="utf8" c:type="gchar*"/>
			</array>
		</field>
		<constructor name="new" c:identifier="rygel_media_resource_new">
			<return-value transfer-ownership="full">
				<type name="RygelServer.MediaResource" c:type="RygelMediaResource*"/>
			</return-value>
			<parameters>
				<parameter name="name" transfer-ownership="none">
					<type name="utf8" c:type="const gchar*"/>
				</parameter>
			</parameters>
		</constructor>
		<constructor name="from_resource" c:identifier="rygel_media_resource_new_from_resource">
			<return-value transfer-ownership="full">
				<type name="RygelServer.MediaResource" c:type="RygelMediaResource*"/>
			</return-value>
			<parameters>
				<parameter name="name" transfer-ownership="none">
					<type name="utf8" c:type="const gchar*"/>
				</parameter>
				<parameter name="that" transfer-ownership="none">
					<type name="RygelServer.MediaResource" c:type="RygelMediaResource*"/>
				</parameter>
			</parameters>
		</constructor>
		<constructor name="from_didl_lite_resource" c:identifier="rygel_media_resource_new_from_didl_lite_resource">
			<return-value transfer-ownership="full">
				<type name="RygelServer.MediaResource" c:type="RygelMediaResource*"/>
			</return-value>
			<parameters>
				<parameter name="name" transfer-ownership="none">
					<type name="utf8" c:type="const gchar*"/>
				</parameter>
				<parameter name="didl_resource" transfer-ownership="none">
					<type name="GUPnPAV.DIDLLiteResource" c:type="GUPnPDIDLLiteResource*"/>
				</parameter>
			</parameters>
		</constructor>
		<method name="dup" c:identifier="rygel_media_resource_dup">
			<return-value transfer-ownership="full">
				<type name="RygelServer.MediaResource" c:type="RygelMediaResource*"/>
			</return-value>
		</method>
		<method name="get_name" c:identifier="rygel_media_resource_get_name">
			<return-value transfer-ownership="full">
				<type name="utf8" c:type="gchar*"/>
			</return-value>
		</method>
		<method name="serialize" c:identifier="rygel_media_resource_serialize">
			<return-value transfer-ownership="full">
				<type name="GUPnPAV.DIDLLiteResource" c:type="GUPnPDIDLLiteResource*"/>
			</return-value>
			<parameters>
				<parameter name="didl_resource" transfer-ownership="none">
					<type name="GUPnPAV.DIDLLiteResource" c:type="GUPnPDIDLLiteResource*"/>
				</parameter>
				<parameter name="replacements" transfer-ownership="none" allow-none="1">
					<type name="GLib.HashTable" c:type="GHashTable*">
						<type name="utf8" c:type="gchar*"/>
						<type name="utf8" c:type="gchar*"/>
					</type>
				</parameter>
			</parameters>
		</method>
		<method name="set_protocol_info" c:identifier="rygel_media_resource_set_protocol_info">
			<return-value transfer-ownership="full">
				<type name="none"/>
			</return-value>
			<parameters>
				<parameter name="pi" transfer-ownership="none">
					<type name="GUPnPAV.ProtocolInfo" c:type="GUPnPProtocolInfo*"/>
				</parameter>
			</parameters>
		</method>
		<method name="get_protocol_info" c:identifier="rygel_media_resource_get_protocol_info">
			<return-value transfer-ownership="full">
				<type name="GUPnPAV.ProtocolInfo" c:type="GUPnPProtocolInfo*"/>
			</return-value>
			<parameters>
				<parameter name="replacements" transfer-ownership="none" allow-none="1">
					<type name="GLib.HashTable" c:type="GHashTable*">
						<type name="utf8" c:type="gchar*"/>
						<type name="utf8" c:type="gchar*"/>
					</type>
				</parameter>
			</parameters>
		</method>
		<method name="supports_arbitrary_byte_seek" c:identifier="rygel_media_resource_supports_arbitrary_byte_seek">
			<return-value transfer-ownership="full">
				<type name="gboolean" c:type="gboolean"/>
			</return-value>
		</method>
		<method name="supports_arbitrary_time_seek" c:identifier="rygel_media_resource_supports_arbitrary_time_seek">
			<return-value transfer-ownership="full">
				<type name="gboolean" c:type="gboolean"/>
			</return-value>
		</method>
		<method name="supports_limited_byte_seek" c:identifier="rygel_media_resource_supports_limited_byte_seek">
			<return-value transfer-ownership="full">
				<type name="gboolean" c:type="gboolean"/>
			</return-value>
		</method>
		<method name="supports_limited_time_seek" c:identifier="rygel_media_resource_supports_limited_time_seek">
			<return-value transfer-ownership="full">
				<type name="gboolean" c:type="gboolean"/>
			</return-value>
		</method>
		<method name="supports_limited_cleartext_byte_seek" c:identifier="rygel_media_resource_supports_limited_cleartext_byte_seek">
			<return-value transfer-ownership="full">
				<type name="gboolean" c:type="gboolean"/>
			</return-value>
		</method>
		<method name="supports_full_cleartext_byte_seek" c:identifier="rygel_media_resource_supports_full_cleartext_byte_seek">
			<return-value transfer-ownership="full">
				<type name="gboolean" c:type="gboolean"/>
			</return-value>
		</method>
		<method name="is_link_protection_enabled" c:identifier="rygel_media_resource_is_link_protection_enabled">
			<return-value transfer-ownership="full">
				<type name="gboolean" c:type="gboolean"/>
			</return-value>
		</method>
		<method name="is_dlna_content" c:identifier="rygel_media_resource_is_dlna_content">
			<return-value transfer-ownership="full">
				<type name="gboolean" c:type="gboolean"/>
			</return-value>
		</method>
		<method name="get_default_transfer_mode" c:identifier="rygel_media_resource_get_default_transfer_mode">
			<return-value transfer-ownership="full">
				<type name="utf8" c:type="gchar*"/>
			</return-value>
		</method>
		<method name="supports_transfer_mode" c:identifier="rygel_media_resource_supports_transfer_mode">
			<return-value transfer-ownership="full">
				<type name="gboolean" c:type="gboolean"/>
			</return-value>
			<parameters>
				<parameter name="transfer_mode" transfer-ownership="none">
					<type name="utf8" c:type="const gchar*"/>
				</parameter>
			</parameters>
		</method>
		<method name="is_streamable" c:identifier="rygel_media_resource_is_streamable">
			<return-value transfer-ownership="full">
				<type name="gboolean" c:type="gboolean"/>
			</return-value>
		</method>
		<method name="is_cleartext_range_support_enabled" c:identifier="rygel_media_resource_is_cleartext_range_support_enabled">
			<return-value transfer-ownership="full">
				<type name="gboolean" c:type="gboolean"/>
			</return-value>
		</method>
		<method name="supports_playspeed" c:identifier="rygel_media_resource_supports_playspeed">
			<return-value transfer-ownership="full">
				<type name="gboolean" c:type="gboolean"/>
			</return-value>
		</method>
		<method name="is_dlna_protocol_flag_set" c:identifier="rygel_media_resource_is_dlna_protocol_flag_set">
			<return-value transfer-ownership="full">
				<type name="gboolean" c:type="gboolean"/>
			</return-value>
			<parameters>
				<parameter name="flags" transfer-ownership="none">
					<type name="glong" c:type="glong"/>
				</parameter>
			</parameters>
		</method>
		<method name="is_dlna_operation_mode_set" c:identifier="rygel_media_resource_is_dlna_operation_mode_set">
			<return-value transfer-ownership="full">
				<type name="gboolean" c:type="gboolean"/>
			</return-value>
			<parameters>
				<parameter name="flags" transfer-ownership="none">
					<type name="glong" c:type="glong"/>
				</parameter>
			</parameters>
		</method>
		<method name="to_string" c:identifier="rygel_media_resource_to_string">
			<return-value transfer-ownership="full">
				<type name="utf8" c:type="gchar*"/>
			</return-value>
		</method>
		<property name="uri" writable="1">
			<type name="utf8" c:type="gchar*"/>
		</property>
		<method name="get_uri" c:identifier="rygel_media_resource_get_uri">
			<return-value transfer-ownership="none">
				<type name="utf8" c:type="const gchar*"/>
			</return-value>
		</method>
		<method name="set_uri" c:identifier="rygel_media_resource_set_uri">
			<return-value transfer-ownership="none">
				<type name="none"/>
			</return-value>
			<parameters>
				<parameter name="value" transfer-ownership="none">
					<type name="utf8" c:type="const gchar*"/>
				</parameter>
			</parameters>
		</method>
		<property name="import-uri" writable="1">
			<type name="utf8" c:type="gchar*"/>
		</property>
		<method name="get_import_uri" c:identifier="rygel_media_resource_get_import_uri">
			<return-value transfer-ownership="none">
				<type name="utf8" c:type="const gchar*"/>
			</return-value>
		</method>
		<method name="set_import_uri" c:identifier="rygel_media_resource_set_import_uri">
			<return-value transfer-ownership="none">
				<type name="none"/>
			</return-value>
			<parameters>
				<parameter name="value" transfer-ownership="none">
					<type name="utf8" c:type="const gchar*"/>
				</parameter>
			</parameters>
		</method>
		<property name="extension" writable="1">
			<type name="utf8" c:type="gchar*"/>
		</property>
		<method name="get_extension" c:identifier="rygel_media_resource_get_extension">
			<return-value transfer-ownership="none">
				<type name="utf8" c:type="const gchar*"/>
			</return-value>
		</method>
		<method name="set_extension" c:identifier="rygel_media_resource_set_extension">
			<return-value transfer-ownership="none">
				<type name="none"/>
			</return-value>
			<parameters>
				<parameter name="value" transfer-ownership="none">
					<type name="utf8" c:type="const gchar*"/>
				</parameter>
			</parameters>
		</method>
		<property name="size" writable="1">
			<type name="gint64" c:type="gint64"/>
		</property>
		<method name="get_size" c:identifier="rygel_media_resource_get_size">
			<return-value transfer-ownership="none">
				<type name="gint64" c:type="gint64"/>
			</return-value>
		</method>
		<method name="set_size" c:identifier="rygel_media_resource_set_size">
			<return-value transfer-ownership="none">
				<type name="none"/>
			</return-value>
			<parameters>
				<parameter name="value" transfer-ownership="none">
					<type name="gint64" c:type="gint64"/>
				</parameter>
			</parameters>
		</method>
		<property name="cleartext-size" writable="1">
			<type name="gint64" c:type="gint64"/>
		</property>
		<method name="get_cleartext_size" c:identifier="rygel_media_resource_get_cleartext_size">
			<return-value transfer-ownership="none">
				<type name="gint64" c:type="gint64"/>
			</return-value>
		</method>
		<method name="set_cleartext_size" c:identifier="rygel_media_resource_set_cleartext_size">
			<return-value transfer-ownership="none">
				<type name="none"/>
			</return-value>
			<parameters>
				<parameter name="value" transfer-ownership="none">
					<type name="gint64" c:type="gint64"/>
				</parameter>
			</parameters>
		</method>
		<property name="duration" writable="1">
			<type name="glong" c:type="glong"/>
		</property>
		<method name="get_duration" c:identifier="rygel_media_resource_get_duration">
			<return-value transfer-ownership="none">
				<type name="glong" c:type="glong"/>
			</return-value>
		</method>
		<method name="set_duration" c:identifier="rygel_media_resource_set_duration">
			<return-value transfer-ownership="none">
				<type name="none"/>
			</return-value>
			<parameters>
				<parameter name="value" transfer-ownership="none">
					<type name="glong" c:type="glong"/>
				</parameter>
			</parameters>
		</method>
		<property name="bitrate" writable="1">
			<type name="gint" c:type="gint"/>
		</property>
		<method name="get_bitrate" c:identifier="rygel_media_resource_get_bitrate">
			<return-value transfer-ownership="none">
				<type name="gint" c:type="gint"/>
			</return-value>
		</method>
		<method name="set_bitrate" c:identifier="rygel_media_resource_set_bitrate">
			<return-value transfer-ownership="none">
				<type name="none"/>
			</return-value>
			<parameters>
				<parameter name="value" transfer-ownership="none">
					<type name="gint" c:type="gint"/>
				</parameter>
			</parameters>
		</method>
		<property name="bits-per-sample" writable="1">
			<type name="gint" c:type="gint"/>
		</property>
		<method name="get_bits_per_sample" c:identifier="rygel_media_resource_get_bits_per_sample">
			<return-value transfer-ownership="none">
				<type name="gint" c:type="gint"/>
			</return-value>
		</method>
		<method name="set_bits_per_sample" c:identifier="rygel_media_resource_set_bits_per_sample">
			<return-value transfer-ownership="none">
				<type name="none"/>
			</return-value>
			<parameters>
				<parameter name="value" transfer-ownership="none">
					<type name="gint" c:type="gint"/>
				</parameter>
			</parameters>
		</method>
		<property name="color-depth" writable="1">
			<type name="gint" c:type="gint"/>
		</property>
		<method name="get_color_depth" c:identifier="rygel_media_resource_get_color_depth">
			<return-value transfer-ownership="none">
				<type name="gint" c:type="gint"/>
			</return-value>
		</method>
		<method name="set_color_depth" c:identifier="rygel_media_resource_set_color_depth">
			<return-value transfer-ownership="none">
				<type name="none"/>
			</return-value>
			<parameters>
				<parameter name="value" transfer-ownership="none">
					<type name="gint" c:type="gint"/>
				</parameter>
			</parameters>
		</method>
		<property name="width" writable="1">
			<type name="gint" c:type="gint"/>
		</property>
		<method name="get_width" c:identifier="rygel_media_resource_get_width">
			<return-value transfer-ownership="none">
				<type name="gint" c:type="gint"/>
			</return-value>
		</method>
		<method name="set_width" c:identifier="rygel_media_resource_set_width">
			<return-value transfer-ownership="none">
				<type name="none"/>
			</return-value>
			<parameters>
				<parameter name="value" transfer-ownership="none">
					<type name="gint" c:type="gint"/>
				</parameter>
			</parameters>
		</method>
		<property name="height" writable="1">
			<type name="gint" c:type="gint"/>
		</property>
		<method name="get_height" c:identifier="rygel_media_resource_get_height">
			<return-value transfer-ownership="none">
				<type name="gint" c:type="gint"/>
			</return-value>
		</method>
		<method name="set_height" c:identifier="rygel_media_resource_set_height">
			<return-value transfer-ownership="none">
				<type name="none"/>
			</return-value>
			<parameters>
				<parameter name="value" transfer-ownership="none">
					<type name="gint" c:type="gint"/>
				</parameter>
			</parameters>
		</method>
		<property name="audio-channels" writable="1">
			<type name="gint" c:type="gint"/>
		</property>
		<method name="get_audio_channels" c:identifier="rygel_media_resource_get_audio_channels">
			<return-value transfer-ownership="none">
				<type name="gint" c:type="gint"/>
			</return-value>
		</method>
		<method name="set_audio_channels" c:identifier="rygel_media_resource_set_audio_channels">
			<return-value transfer-ownership="none">
				<type name="none"/>
			</return-value>
			<parameters>
				<parameter name="value" transfer-ownership="none">
					<type name="gint" c:type="gint"/>
				</parameter>
			</parameters>
		</method>
		<property name="sample-freq" writable="1">
			<type name="gint" c:type="gint"/>
		</property>
		<method name="get_sample_freq" c:identifier="rygel_media_resource_get_sample_freq">
			<return-value transfer-ownership="none">
				<type name="gint" c:type="gint"/>
			</return-value>
		</method>
		<method name="set_sample_freq" c:identifier="rygel_media_resource_set_sample_freq">
			<return-value transfer-ownership="none">
				<type name="none"/>
			</return-value>
			<parameters>
				<parameter name="value" transfer-ownership="none">
					<type name="gint" c:type="gint"/>
				</parameter>
			</parameters>
		</method>
		<property name="protocol" writable="1">
			<type name="utf8" c:type="gchar*"/>
		</property>
		<method name="get_protocol" c:identifier="rygel_media_resource_get_protocol">
			<return-value transfer-ownership="none">
				<type name="utf8" c:type="const gchar*"/>
			</return-value>
		</method>
		<method name="set_protocol" c:identifier="rygel_media_resource_set_protocol">
			<return-value transfer-ownership="none">
				<type name="none"/>
			</return-value>
			<parameters>
				<parameter name="value" transfer-ownership="none">
					<type name="utf8" c:type="const gchar*"/>
				</parameter>
			</parameters>
		</method>
		<property name="mime-type" writable="1">
			<type name="utf8" c:type="gchar*"/>
		</property>
		<method name="get_mime_type" c:identifier="rygel_media_resource_get_mime_type">
			<return-value transfer-ownership="none">
				<type name="utf8" c:type="const gchar*"/>
			</return-value>
		</method>
		<method name="set_mime_type" c:identifier="rygel_media_resource_set_mime_type">
			<return-value transfer-ownership="none">
				<type name="none"/>
			</return-value>
			<parameters>
				<parameter name="value" transfer-ownership="none">
					<type name="utf8" c:type="const gchar*"/>
				</parameter>
			</parameters>
		</method>
		<property name="dlna-profile" writable="1">
			<type name="utf8" c:type="gchar*"/>
		</property>
		<method name="get_dlna_profile" c:identifier="rygel_media_resource_get_dlna_profile">
			<return-value transfer-ownership="none">
				<type name="utf8" c:type="const gchar*"/>
			</return-value>
		</method>
		<method name="set_dlna_profile" c:identifier="rygel_media_resource_set_dlna_profile">
			<return-value transfer-ownership="none">
				<type name="none"/>
			</return-value>
			<parameters>
				<parameter name="value" transfer-ownership="none">
					<type name="utf8" c:type="const gchar*"/>
				</parameter>
			</parameters>
		</method>
		<property name="network" writable="1">
			<type name="utf8" c:type="gchar*"/>
		</property>
		<method name="get_network" c:identifier="rygel_media_resource_get_network">
			<return-value transfer-ownership="none">
				<type name="utf8" c:type="const gchar*"/>
			</return-value>
		</method>
		<method name="set_network" c:identifier="rygel_media_resource_set_network">
			<return-value transfer-ownership="none">
				<type name="none"/>
			</return-value>
			<parameters>
				<parameter name="value" transfer-ownership="none">
					<type name="utf8" c:type="const gchar*"/>
				</parameter>
			</parameters>
		</method>
		<property name="dlna-conversion" writable="1">
			<type name="GUPnPAV.DLNAConversion" c:type="GUPnPDLNAConversion"/>
		</property>
		<method name="get_dlna_conversion" c:identifier="rygel_media_resource_get_dlna_conversion">
			<return-value transfer-ownership="none">
				<type name="GUPnPAV.DLNAConversion" c:type="GUPnPDLNAConversion"/>
			</return-value>
		</method>
		<method name="set_dlna_conversion" c:identifier="rygel_media_resource_set_dlna_conversion">
			<return-value transfer-ownership="none">
				<type name="none"/>
			</return-value>
			<parameters>
				<parameter name="value" transfer-ownership="none">
					<type name="GUPnPAV.DLNAConversion" c:type="GUPnPDLNAConversion"/>
				</parameter>
			</parameters>
		</method>
		<property name="dlna-flags" writable="1">
			<type name="GUPnPAV.DLNAFlags" c:type="GUPnPDLNAFlags"/>
		</property>
		<method name="get_dlna_flags" c:identifier="rygel_media_resource_get_dlna_flags">
			<return-value transfer-ownership="none">
				<type name="GUPnPAV.DLNAFlags" c:type="GUPnPDLNAFlags"/>
			</return-value>
		</method>
		<method name="set_dlna_flags" c:identifier="rygel_media_resource_set_dlna_flags">
			<return-value transfer-ownership="none">
				<type name="none"/>
			</return-value>
			<parameters>
				<parameter name="value" transfer-ownership="none">
					<type name="GUPnPAV.DLNAFlags" c:type="GUPnPDLNAFlags"/>
				</parameter>
			</parameters>
		</method>
		<property name="dlna-operation" writable="1">
			<type name="GUPnPAV.DLNAOperation" c:type="GUPnPDLNAOperation"/>
		</property>
		<method name="get_dlna_operation" c:identifier="rygel_media_resource_get_dlna_operation">
			<return-value transfer-ownership="none">
				<type name="GUPnPAV.DLNAOperation" c:type="GUPnPDLNAOperation"/>
			</return-value>
		</method>
		<method name="set_dlna_operation" c:identifier="rygel_media_resource_set_dlna_operation">
			<return-value transfer-ownership="none">
				<type name="none"/>
			</return-value>
			<parameters>
				<parameter name="value" transfer-ownership="none">
					<type name="GUPnPAV.DLNAOperation" c:type="GUPnPDLNAOperation"/>
				</parameter>
			</parameters>
		</method>
	</class>
	<record name="MediaResourceClass" c:type="RygelMediaResourceClass" glib:is-gtype-struct-for="MediaResource">
		<field name="parent_class">
			<type name="GObject.ObjectClass" c:type="GObjectClass"/>
		</field>
	</record>
	<record name="MediaResourcePrivate" c:type="RygelMediaResourcePrivate" disguised="1"/>
	<class name="MediaServerPlugin" c:type="RygelMediaServerPlugin" glib:type-name="RygelMediaServerPlugin" glib:get-type="rygel_media_server_plugin_get_type" glib:type-struct="MediaServerPluginClass" parent="RygelCore.Plugin" abstract="1">
		<field name="parent_instance">
			<type name="RygelCore.Plugin" c:type="RygelPlugin"/>
		</field>
		<field name="priv">
			<type name="MediaServerPluginPrivate" c:type="RygelMediaServerPluginPrivate*"/>
		</field>
		<property name="root-container" writable="1" construct-only="1">
			<type name="RygelServer.MediaContainer" c:type="RygelMediaContainer*"/>
		</property>
		<method name="get_root_container" c:identifier="rygel_media_server_plugin_get_root_container">
			<return-value transfer-ownership="none">
				<type name="RygelServer.MediaContainer" c:type="RygelMediaContainer*"/>
			</return-value>
		</method>
		<property name="search-caps">
			<type name="utf8" c:type="gchar*"/>
		</property>
		<method name="get_search_caps" c:identifier="rygel_media_server_plugin_get_search_caps">
			<return-value transfer-ownership="none">
				<type name="utf8" c:type="const gchar*"/>
			</return-value>
		</method>
		<virtual-method name="get_search_caps" invoker="get_search_caps">
			<return-value transfer-ownership="none">
				<type name="utf8" c:type="const gchar*"/>
			</return-value>
		</virtual-method>
		<property name="upload-profiles" writable="1" construct="1">
			<type name="GLib.List" c:type="GList*">
				<type name="RygelServer.DLNAProfile" c:type="RygelDLNAProfile*"/>
			</type>
		</property>
		<method name="get_upload_profiles" c:identifier="rygel_media_server_plugin_get_upload_profiles">
			<return-value transfer-ownership="none">
				<type name="GLib.List" c:type="GList*">
					<type name="RygelServer.DLNAProfile" c:type="RygelDLNAProfile*"/>
				</type>
			</return-value>
		</method>
		<method name="set_upload_profiles" c:identifier="rygel_media_server_plugin_set_upload_profiles">
			<return-value transfer-ownership="none">
				<type name="none"/>
			</return-value>
			<parameters>
				<parameter name="value" transfer-ownership="none">
					<type name="GLib.List" c:type="GList*">
						<type name="RygelServer.DLNAProfile" c:type="RygelDLNAProfile*"/>
					</type>
				</parameter>
			</parameters>
		</method>
		<property name="supported-profiles" writable="1" construct="1">
			<type name="GLib.List" c:type="GList*">
				<type name="RygelServer.DLNAProfile" c:type="RygelDLNAProfile*"/>
			</type>
		</property>
		<method name="get_supported_profiles" c:identifier="rygel_media_server_plugin_get_supported_profiles">
			<return-value transfer-ownership="none">
				<type name="GLib.List" c:type="GList*">
					<type name="RygelServer.DLNAProfile" c:type="RygelDLNAProfile*"/>
				</type>
			</return-value>
		</method>
		<method name="set_supported_profiles" c:identifier="rygel_media_server_plugin_set_supported_profiles">
			<return-value transfer-ownership="none">
				<type name="none"/>
			</return-value>
			<parameters>
				<parameter name="value" transfer-ownership="none">
					<type name="GLib.List" c:type="GList*">
						<type name="RygelServer.DLNAProfile" c:type="RygelDLNAProfile*"/>
					</type>
				</parameter>
			</parameters>
		</method>
	</class>
	<record name="MediaServerPluginClass" c:type="RygelMediaServerPluginClass" glib:is-gtype-struct-for="MediaServerPlugin">
		<field name="parent_class">
			<type name="RygelCore.PluginClass" c:type="RygelPluginClass"/>
		</field>
	</record>
	<record name="MediaServerPluginPrivate" c:type="RygelMediaServerPluginPrivate" disguised="1"/>
	<record name="SearchExpression">
		<field name="op" allow-none="1">
			<type name="gpointer" c:type="gpointer"/>
		</field>
		<field name="operand1" allow-none="1">
			<type name="gpointer" c:type="gpointer"/>
		</field>
		<field name="operand2" allow-none="1">
			<type name="gpointer" c:type="gpointer"/>
		</field>
		<method name="satisfied_by" c:identifier="rygel_search_expression_satisfied_by">
			<return-value transfer-ownership="full">
				<type name="gboolean" c:type="gboolean"/>
			</return-value>
			<parameters>
				<parameter name="media_object" transfer-ownership="none">
					<type name="RygelServer.MediaObject" c:type="RygelMediaObject*"/>
				</parameter>
			</parameters>
		</method>
		<virtual-method name="satisfied_by" invoker="satisfied_by">
			<return-value transfer-ownership="full">
				<type name="gboolean" c:type="gboolean"/>
			</return-value>
			<parameters>
				<parameter name="media_object" transfer-ownership="none">
					<type name="RygelServer.MediaObject" c:type="RygelMediaObject*"/>
				</parameter>
			</parameters>
		</virtual-method>
		<method name="to_string" c:identifier="rygel_search_expression_to_string">
			<return-value transfer-ownership="full">
				<type name="utf8" c:type="gchar*"/>
			</return-value>
		</method>
		<virtual-method name="to_string" invoker="to_string">
			<return-value transfer-ownership="full">
				<type name="utf8" c:type="gchar*"/>
			</return-value>
		</virtual-method>
	</record>
	<class name="MediaServer" c:type="RygelMediaServer" glib:type-name="RygelMediaServer" glib:get-type="rygel_media_server_get_type" glib:type-struct="MediaServerClass" parent="RygelCore.MediaDevice">
		<field name="parent_instance">
			<type name="RygelCore.MediaDevice" c:type="RygelMediaDevice"/>
		</field>
		<field name="priv">
			<type name="MediaServerPrivate" c:type="RygelMediaServerPrivate*"/>
		</field>
		<constructor name="new" c:identifier="rygel_media_server_new">
			<return-value transfer-ownership="full">
				<type name="RygelServer.MediaServer" c:type="RygelMediaServer*"/>
			</return-value>
			<parameters>
				<parameter name="title" transfer-ownership="none">
					<type name="utf8" c:type="const gchar*"/>
				</parameter>
				<parameter name="root_container" transfer-ownership="none">
					<type name="RygelServer.MediaContainer" c:type="RygelMediaContainer*"/>
				</parameter>
				<parameter name="capabilities" transfer-ownership="none">
					<type name="RygelCore.PluginCapabilities" c:type="RygelPluginCapabilities"/>
				</parameter>
			</parameters>
		</constructor>
		<property name="root-container" writable="1" construct-only="1">
			<type name="RygelServer.MediaContainer" c:type="RygelMediaContainer*"/>
		</property>
	</class>
	<record name="MediaServerClass" c:type="RygelMediaServerClass" glib:is-gtype-struct-for="MediaServer">
		<field name="parent_class">
			<type name="RygelCore.MediaDeviceClass" c:type="RygelMediaDeviceClass"/>
		</field>
	</record>
	<record name="MediaServerPrivate" c:type="RygelMediaServerPrivate" disguised="1"/>
	<class name="MediaEngine" c:type="RygelMediaEngine" glib:type-name="RygelMediaEngine" glib:get-type="rygel_media_engine_get_type" glib:type-struct="MediaEngineClass" parent="GObject.Object" abstract="1">
		<field name="parent_instance">
			<type name="GObject.Object" c:type="GObject"/>
		</field>
		<field name="priv">
			<type name="MediaEnginePrivate" c:type="RygelMediaEnginePrivate*"/>
		</field>
		<function name="init" c:identifier="rygel_media_engine_init" throws="1">
			<return-value transfer-ownership="full">
				<type name="none"/>
			</return-value>
		</function>
		<function name="get_default" c:identifier="rygel_media_engine_get_default">
			<return-value transfer-ownership="full">
				<type name="RygelServer.MediaEngine" c:type="RygelMediaEngine*"/>
			</return-value>
		</function>
		<method name="get_dlna_profiles" c:identifier="rygel_media_engine_get_dlna_profiles">
			<return-value transfer-ownership="none">
				<type name="GLib.List" c:type="GList*">
					<type name="RygelServer.DLNAProfile" c:type="RygelDLNAProfile*"/>
				</type>
			</return-value>
		</method>
		<virtual-method name="get_dlna_profiles" invoker="get_dlna_profiles">
			<return-value transfer-ownership="none">
				<type name="GLib.List" c:type="GList*">
					<type name="RygelServer.DLNAProfile" c:type="RygelDLNAProfile*"/>
				</type>
			</return-value>
		</virtual-method>
		<method name="get_resources_for_item" c:identifier="rygel_media_engine_get_resources_for_item">
			<return-value transfer-ownership="none">
				<type name="none"/>
			</return-value>
			<parameters>
				<parameter name="item" transfer-ownership="none">
					<type name="RygelServer.MediaObject" c:type="RygelMediaObject*"/>
				</parameter>
				<parameter name="_callback_" transfer-ownership="none" allow-none="1" closure="2" scope="async">
					<type name="Gio.AsyncReadyCallback" c:type="GAsyncReadyCallback"/>
				</parameter>
				<parameter name="_callback__target" transfer-ownership="none" allow-none="1">
					<type name="gpointer" c:type="void*"/>
				</parameter>
			</parameters>
		</method>
		<method name="get_resources_for_item_finish" c:identifier="rygel_media_engine_get_resources_for_item_finish">
			<return-value transfer-ownership="full" allow-none="1">
				<type name="Gee.List" c:type="GeeList*">
					<type name="RygelServer.MediaResource" c:type="RygelMediaResource*"/>
				</type>
			</return-value>
			<parameters>
				<parameter name="_res_" transfer-ownership="none">
					<type name="Gio.AsyncResult" c:type="GAsyncResult*"/>
				</parameter>
			</parameters>
		</method>
		<virtual-method name="get_resources_for_item" invoker="get_resources_for_item">
			<return-value transfer-ownership="none">
				<type name="none"/>
			</return-value>
			<parameters>
				<parameter name="item" transfer-ownership="none">
					<type name="RygelServer.MediaObject" c:type="RygelMediaObject*"/>
				</parameter>
				<parameter name="_callback_" transfer-ownership="none" allow-none="1" closure="2" scope="async">
					<type name="Gio.AsyncReadyCallback" c:type="GAsyncReadyCallback"/>
				</parameter>
				<parameter name="_callback__target" transfer-ownership="none" allow-none="1">
					<type name="gpointer" c:type="void*"/>
				</parameter>
			</parameters>
		</virtual-method>
		<virtual-method name="get_resources_for_item_finish" invoker="get_resources_for_item_finish">
			<return-value transfer-ownership="full" allow-none="1">
				<type name="Gee.List" c:type="GeeList*">
					<type name="RygelServer.MediaResource" c:type="RygelMediaResource*"/>
				</type>
			</return-value>
			<parameters>
				<parameter name="_res_" transfer-ownership="none">
					<type name="Gio.AsyncResult" c:type="GAsyncResult*"/>
				</parameter>
			</parameters>
		</virtual-method>
		<method name="create_data_source_for_resource" c:identifier="rygel_media_engine_create_data_source_for_resource" throws="1">
			<return-value transfer-ownership="full" allow-none="1">
				<type name="RygelServer.DataSource" c:type="RygelDataSource*"/>
			</return-value>
			<parameters>
				<parameter name="item" transfer-ownership="none">
					<type name="RygelServer.MediaObject" c:type="RygelMediaObject*"/>
				</parameter>
				<parameter name="resource" transfer-ownership="none">
					<type name="RygelServer.MediaResource" c:type="RygelMediaResource*"/>
				</parameter>
			</parameters>
		</method>
		<virtual-method name="create_data_source_for_resource" invoker="create_data_source_for_resource" throws="1">
			<return-value transfer-ownership="full" allow-none="1">
				<type name="RygelServer.DataSource" c:type="RygelDataSource*"/>
			</return-value>
			<parameters>
				<parameter name="item" transfer-ownership="none">
					<type name="RygelServer.MediaObject" c:type="RygelMediaObject*"/>
				</parameter>
				<parameter name="resource" transfer-ownership="none">
					<type name="RygelServer.MediaResource" c:type="RygelMediaResource*"/>
				</parameter>
			</parameters>
		</virtual-method>
		<method name="create_data_source_for_uri" c:identifier="rygel_media_engine_create_data_source_for_uri" throws="1">
			<return-value transfer-ownership="full" allow-none="1">
				<type name="RygelServer.DataSource" c:type="RygelDataSource*"/>
			</return-value>
			<parameters>
				<parameter name="uri" transfer-ownership="none">
					<type name="utf8" c:type="const gchar*"/>
				</parameter>
			</parameters>
		</method>
		<virtual-method name="create_data_source_for_uri" invoker="create_data_source_for_uri" throws="1">
			<return-value transfer-ownership="full" allow-none="1">
				<type name="RygelServer.DataSource" c:type="RygelDataSource*"/>
			</return-value>
			<parameters>
				<parameter name="uri" transfer-ownership="none">
					<type name="utf8" c:type="const gchar*"/>
				</parameter>
			</parameters>
		</virtual-method>
		<method name="get_internal_protocol_schemes" c:identifier="rygel_media_engine_get_internal_protocol_schemes">
			<return-value transfer-ownership="full">
				<type name="GLib.List" c:type="GList*">
					<type name="utf8" c:type="gchar*"/>
				</type>
			</return-value>
		</method>
		<virtual-method name="get_internal_protocol_schemes" invoker="get_internal_protocol_schemes">
			<return-value transfer-ownership="full">
				<type name="GLib.List" c:type="GList*">
					<type name="utf8" c:type="gchar*"/>
				</type>
			</return-value>
		</virtual-method>
		<glib:signal name="resource_changed">
			<return-value transfer-ownership="full">
				<type name="none"/>
			</return-value>
			<parameters>
				<parameter name="media_object_uri" transfer-ownership="none">
					<type name="utf8" c:type="const gchar*"/>
				</parameter>
			</parameters>
		</glib:signal>
	</class>
	<record name="MediaEngineClass" c:type="RygelMediaEngineClass" glib:is-gtype-struct-for="MediaEngine">
		<field name="parent_class">
			<type name="GObject.ObjectClass" c:type="GObjectClass"/>
		</field>
				<field name="get_dlna_profiles">
			<callback name="get_dlna_profiles" c:type="get_dlna_profiles">
				<return-value transfer-ownership="none">
					<type name="GLib.List" c:type="GList*">
						<type name="RygelServer.DLNAProfile" c:type="RygelDLNAProfile*"/>
					</type>
				</return-value>
				<parameters>
					<parameter name="self" transfer-ownership="none">
						<type name="RygelServer.MediaEngine" c:type="RygelMediaEngine*"/>
					</parameter>
				</parameters>
			</callback>
		</field>
				<field name="get_resources_for_item">
			<callback name="get_resources_for_item" c:type="get_resources_for_item">
				<return-value transfer-ownership="none">
					<type name="none"/>
				</return-value>
				<parameters>
					<parameter name="self" transfer-ownership="none">
						<type name="RygelServer.MediaEngine" c:type="RygelMediaEngine*"/>
					</parameter>
					<parameter name="item" transfer-ownership="none">
						<type name="RygelServer.MediaObject" c:type="RygelMediaObject*"/>
					</parameter>
					<parameter name="_callback_" transfer-ownership="none" allow-none="1" closure="3" scope="async">
						<type name="Gio.AsyncReadyCallback" c:type="GAsyncReadyCallback"/>
					</parameter>
					<parameter name="_callback__target" transfer-ownership="none" allow-none="1">
						<type name="gpointer" c:type="void*"/>
					</parameter>
				</parameters>
			</callback>
		</field>
		<field name="get_resources_for_item_finish">
			<callback name="get_resources_for_item_finish" c:type="get_resources_for_item_finish">
				<return-value transfer-ownership="full" allow-none="1">
					<type name="Gee.List" c:type="GeeList*">
						<type name="RygelServer.MediaResource" c:type="RygelMediaResource*"/>
					</type>
				</return-value>
				<parameters>
					<parameter name="self" transfer-ownership="none">
						<type name="RygelServer.MediaEngine" c:type="RygelMediaEngine*"/>
					</parameter>
					<parameter name="_res_" transfer-ownership="none">
						<type name="Gio.AsyncResult" c:type="GAsyncResult*"/>
					</parameter>
				</parameters>
			</callback>
		</field>
				<field name="create_data_source_for_resource">
			<callback name="create_data_source_for_resource" c:type="create_data_source_for_resource" throws="1">
				<return-value transfer-ownership="full" allow-none="1">
					<type name="RygelServer.DataSource" c:type="RygelDataSource*"/>
				</return-value>
				<parameters>
					<parameter name="self" transfer-ownership="none">
						<type name="RygelServer.MediaEngine" c:type="RygelMediaEngine*"/>
					</parameter>
					<parameter name="item" transfer-ownership="none">
						<type name="RygelServer.MediaObject" c:type="RygelMediaObject*"/>
					</parameter>
					<parameter name="resource" transfer-ownership="none">
						<type name="RygelServer.MediaResource" c:type="RygelMediaResource*"/>
					</parameter>
				</parameters>
			</callback>
		</field>
				<field name="create_data_source_for_uri">
			<callback name="create_data_source_for_uri" c:type="create_data_source_for_uri" throws="1">
				<return-value transfer-ownership="full" allow-none="1">
					<type name="RygelServer.DataSource" c:type="RygelDataSource*"/>
				</return-value>
				<parameters>
					<parameter name="self" transfer-ownership="none">
						<type name="RygelServer.MediaEngine" c:type="RygelMediaEngine*"/>
					</parameter>
					<parameter name="uri" transfer-ownership="none">
						<type name="utf8" c:type="const gchar*"/>
					</parameter>
				</parameters>
			</callback>
		</field>
				<field name="get_internal_protocol_schemes">
			<callback name="get_internal_protocol_schemes" c:type="get_internal_protocol_schemes">
				<return-value transfer-ownership="full">
					<type name="GLib.List" c:type="GList*">
						<type name="utf8" c:type="gchar*"/>
					</type>
				</return-value>
				<parameters>
					<parameter name="self" transfer-ownership="none">
						<type name="RygelServer.MediaEngine" c:type="RygelMediaEngine*"/>
					</parameter>
				</parameters>
			</callback>
		</field>
	</record>
	<record name="MediaEnginePrivate" c:type="RygelMediaEnginePrivate" disguised="1"/>
	<class name="HTTPSeekRequest" c:type="RygelHTTPSeekRequest" glib:type-name="RygelHTTPSeekRequest" glib:get-type="rygel_http_seek_request_get_type" glib:type-struct="HTTPSeekRequestClass" parent="GObject.Object" abstract="1">
		<field name="parent_instance">
			<type name="GObject.Object" c:type="GObject"/>
		</field>
		<field name="priv">
			<type name="HTTPSeekRequestPrivate" c:type="RygelHTTPSeekRequestPrivate*"/>
		</field>
		<constant name="UNSPECIFIED" c:identifier="RYGEL_HTTP_SEEK_REQUEST_UNSPECIFIED" value="-1">
			<type name="gint" c:type="gint"/>
		</constant>
	</class>
	<record name="HTTPSeekRequestClass" c:type="RygelHTTPSeekRequestClass" glib:is-gtype-struct-for="HTTPSeekRequest">
		<field name="parent_class">
			<type name="GObject.ObjectClass" c:type="GObjectClass"/>
		</field>
	</record>
	<record name="HTTPSeekRequestPrivate" c:type="RygelHTTPSeekRequestPrivate" disguised="1"/>
	<class name="PlaylistItem" c:type="RygelPlaylistItem" glib:type-name="RygelPlaylistItem" glib:get-type="rygel_playlist_item_get_type" glib:type-struct="PlaylistItemClass" parent="RygelServer.MediaFileItem">
		<field name="parent_instance">
			<type name="RygelServer.MediaFileItem" c:type="RygelMediaFileItem"/>
		</field>
		<field name="priv">
			<type name="PlaylistItemPrivate" c:type="RygelPlaylistItemPrivate*"/>
		</field>
		<constant name="UPNP_CLASS" c:identifier="RYGEL_PLAYLIST_ITEM_UPNP_CLASS" value="object.item.playlistItem">
			<type name="utf8" c:type="const gchar*"/>
		</constant>
		<constructor name="new" c:identifier="rygel_playlist_item_new">
			<return-value transfer-ownership="full">
				<type name="RygelServer.PlaylistItem" c:type="RygelPlaylistItem*"/>
			</return-value>
			<parameters>
				<parameter name="id" transfer-ownership="none">
					<type name="utf8" c:type="const gchar*"/>
				</parameter>
				<parameter name="parent" transfer-ownership="none">
					<type name="RygelServer.MediaContainer" c:type="RygelMediaContainer*"/>
				</parameter>
				<parameter name="title" transfer-ownership="none">
					<type name="utf8" c:type="const gchar*"/>
				</parameter>
				<parameter name="upnp_class" transfer-ownership="none">
					<type name="utf8" c:type="const gchar*"/>
				</parameter>
			</parameters>
		</constructor>
	</class>
	<record name="PlaylistItemClass" c:type="RygelPlaylistItemClass" glib:is-gtype-struct-for="PlaylistItem">
		<field name="parent_class">
			<type name="RygelServer.MediaFileItemClass" c:type="RygelMediaFileItemClass"/>
		</field>
	</record>
	<record name="PlaylistItemPrivate" c:type="RygelPlaylistItemPrivate" disguised="1"/>
	<class name="ContentDirectory" c:type="RygelContentDirectory" glib:type-name="RygelContentDirectory" glib:get-type="rygel_content_directory_get_type" glib:type-struct="ContentDirectoryClass" parent="GUPnP.Service">
		<field name="parent_instance">
			<type name="GUPnP.Service" c:type="GUPnPService"/>
		</field>
		<field name="priv">
			<type name="ContentDirectoryPrivate" c:type="RygelContentDirectoryPrivate*"/>
		</field>
		<field name="feature_list">
			<type name="utf8" c:type="gchar*"/>
		</field>
		<field name="root_container">
			<type name="RygelServer.MediaContainer" c:type="RygelMediaContainer*"/>
		</field>
		<field name="system_update_id">
			<type name="guint32" c:type="guint32"/>
		</field>
		<constant name="UPNP_ID" c:identifier="RYGEL_CONTENT_DIRECTORY_UPNP_ID" value="urn:upnp-org:serviceId:ContentDirectory">
			<type name="utf8" c:type="const gchar*"/>
		</constant>
		<constant name="UPNP_TYPE" c:identifier="RYGEL_CONTENT_DIRECTORY_UPNP_TYPE" value="urn:schemas-upnp-org:service:ContentDirectory:3">
			<type name="utf8" c:type="const gchar*"/>
		</constant>
		<constant name="UPNP_TYPE_V1" c:identifier="RYGEL_CONTENT_DIRECTORY_UPNP_TYPE_V1" value="urn:schemas-upnp-org:service:ContentDirectory:1">
			<type name="utf8" c:type="const gchar*"/>
		</constant>
		<constant name="DESCRIPTION_PATH" c:identifier="RYGEL_CONTENT_DIRECTORY_DESCRIPTION_PATH" value="xml/ContentDirectory.xml">
			<type name="utf8" c:type="const gchar*"/>
		</constant>
		<constant name="DESCRIPTION_PATH_NO_TRACK" c:identifier="RYGEL_CONTENT_DIRECTORY_DESCRIPTION_PATH_NO_TRACK" value="xml/ContentDirectory-NoTrack.xml">
			<type name="utf8" c:type="const gchar*"/>
		</constant>
		<constructor name="new" c:identifier="rygel_content_directory_new">
			<return-value transfer-ownership="full">
				<type name="RygelServer.ContentDirectory" c:type="RygelContentDirectory*"/>
			</return-value>
		</constructor>
	</class>
	<record name="ContentDirectoryClass" c:type="RygelContentDirectoryClass" glib:is-gtype-struct-for="ContentDirectory">
		<field name="parent_class">
			<type name="GUPnP.ServiceClass" c:type="GUPnPServiceClass"/>
		</field>
	</record>
	<record name="ContentDirectoryPrivate" c:type="RygelContentDirectoryPrivate" disguised="1"/>
	<class name="HTTPByteSeekRequest" c:type="RygelHTTPByteSeekRequest" glib:type-name="RygelHTTPByteSeekRequest" glib:get-type="rygel_http_byte_seek_request_get_type" glib:type-struct="HTTPByteSeekRequestClass" parent="RygelServer.HTTPSeekRequest">
		<field name="parent_instance">
			<type name="RygelServer.HTTPSeekRequest" c:type="RygelHTTPSeekRequest"/>
		</field>
		<field name="priv">
			<type name="HTTPByteSeekRequestPrivate" c:type="RygelHTTPByteSeekRequestPrivate*"/>
		</field>
		<constructor name="new" c:identifier="rygel_http_byte_seek_request_new" throws="1">
			<return-value transfer-ownership="full">
				<type name="RygelServer.HTTPByteSeekRequest" c:type="RygelHTTPByteSeekRequest*"/>
			</return-value>
			<parameters>
				<parameter name="msg" transfer-ownership="none">
					<type name="Soup.Message" c:type="SoupMessage*"/>
				</parameter>
				<parameter name="handler" transfer-ownership="none">
					<type name="RygelServer.HTTPGetHandler" c:type="RygelHTTPGetHandler*"/>
				</parameter>
			</parameters>
		</constructor>
		<function name="supported" c:identifier="rygel_http_byte_seek_request_supported">
			<return-value transfer-ownership="full">
				<type name="gboolean" c:type="gboolean"/>
			</return-value>
			<parameters>
				<parameter name="message" transfer-ownership="none">
					<type name="Soup.Message" c:type="SoupMessage*"/>
				</parameter>
				<parameter name="handler" transfer-ownership="none">
					<type name="RygelServer.HTTPGetHandler" c:type="RygelHTTPGetHandler*"/>
				</parameter>
			</parameters>
		</function>
		<function name="requested" c:identifier="rygel_http_byte_seek_request_requested">
			<return-value transfer-ownership="full">
				<type name="gboolean" c:type="gboolean"/>
			</return-value>
			<parameters>
				<parameter name="msg" transfer-ownership="none">
					<type name="Soup.Message" c:type="SoupMessage*"/>
				</parameter>
			</parameters>
		</function>
		<property name="start-byte" writable="1">
			<type name="gint64" c:type="gint64"/>
		</property>
		<method name="get_start_byte" c:identifier="rygel_http_byte_seek_request_get_start_byte">
			<return-value transfer-ownership="none">
				<type name="gint64" c:type="gint64"/>
			</return-value>
		</method>
		<method name="set_start_byte" c:identifier="rygel_http_byte_seek_request_set_start_byte">
			<return-value transfer-ownership="none">
				<type name="none"/>
			</return-value>
			<parameters>
				<parameter name="value" transfer-ownership="none">
					<type name="gint64" c:type="gint64"/>
				</parameter>
			</parameters>
		</method>
		<property name="end-byte" writable="1">
			<type name="gint64" c:type="gint64"/>
		</property>
		<method name="get_end_byte" c:identifier="rygel_http_byte_seek_request_get_end_byte">
			<return-value transfer-ownership="none">
				<type name="gint64" c:type="gint64"/>
			</return-value>
		</method>
		<method name="set_end_byte" c:identifier="rygel_http_byte_seek_request_set_end_byte">
			<return-value transfer-ownership="none">
				<type name="none"/>
			</return-value>
			<parameters>
				<parameter name="value" transfer-ownership="none">
					<type name="gint64" c:type="gint64"/>
				</parameter>
			</parameters>
		</method>
		<property name="range-length" writable="1">
			<type name="gint64" c:type="gint64"/>
		</property>
		<method name="get_range_length" c:identifier="rygel_http_byte_seek_request_get_range_length">
			<return-value transfer-ownership="none">
				<type name="gint64" c:type="gint64"/>
			</return-value>
		</method>
		<property name="total-size" writable="1">
			<type name="gint64" c:type="gint64"/>
		</property>
		<method name="get_total_size" c:identifier="rygel_http_byte_seek_request_get_total_size">
			<return-value transfer-ownership="none">
				<type name="gint64" c:type="gint64"/>
			</return-value>
		</method>
		<method name="set_total_size" c:identifier="rygel_http_byte_seek_request_set_total_size">
			<return-value transfer-ownership="none">
				<type name="none"/>
			</return-value>
			<parameters>
				<parameter name="value" transfer-ownership="none">
					<type name="gint64" c:type="gint64"/>
				</parameter>
			</parameters>
		</method>
	</class>
	<record name="HTTPByteSeekRequestClass" c:type="RygelHTTPByteSeekRequestClass" glib:is-gtype-struct-for="HTTPByteSeekRequest">
		<field name="parent_class">
			<type name="RygelServer.HTTPSeekRequestClass" c:type="RygelHTTPSeekRequestClass"/>
		</field>
	</record>
	<record name="HTTPByteSeekRequestPrivate" c:type="RygelHTTPByteSeekRequestPrivate" disguised="1"/>
	<class name="HTTPByteSeekResponse" c:type="RygelHTTPByteSeekResponse" glib:type-name="RygelHTTPByteSeekResponse" glib:get-type="rygel_http_byte_seek_response_get_type" glib:type-struct="HTTPByteSeekResponseClass" parent="RygelServer.HTTPResponseElement">
		<field name="parent_instance">
			<type name="RygelServer.HTTPResponseElement" c:type="RygelHTTPResponseElement"/>
		</field>
		<field name="priv">
			<type name="HTTPByteSeekResponsePrivate" c:type="RygelHTTPByteSeekResponsePrivate*"/>
		</field>
		<constructor name="new" c:identifier="rygel_http_byte_seek_response_new">
			<return-value transfer-ownership="full">
				<type name="RygelServer.HTTPByteSeekResponse" c:type="RygelHTTPByteSeekResponse*"/>
			</return-value>
			<parameters>
				<parameter name="start_byte" transfer-ownership="none">
					<type name="gint64" c:type="gint64"/>
				</parameter>
				<parameter name="end_byte" transfer-ownership="none">
					<type name="gint64" c:type="gint64"/>
				</parameter>
				<parameter name="total_size" transfer-ownership="none">
					<type name="gint64" c:type="gint64"/>
				</parameter>
			</parameters>
		</constructor>
		<constructor name="from_request" c:identifier="rygel_http_byte_seek_response_new_from_request">
			<return-value transfer-ownership="full">
				<type name="RygelServer.HTTPByteSeekResponse" c:type="RygelHTTPByteSeekResponse*"/>
			</return-value>
			<parameters>
				<parameter name="request" transfer-ownership="none">
					<type name="RygelServer.HTTPByteSeekRequest" c:type="RygelHTTPByteSeekRequest*"/>
				</parameter>
			</parameters>
		</constructor>
		<property name="start-byte" writable="1">
			<type name="gint64" c:type="gint64"/>
		</property>
		<method name="get_start_byte" c:identifier="rygel_http_byte_seek_response_get_start_byte">
			<return-value transfer-ownership="none">
				<type name="gint64" c:type="gint64"/>
			</return-value>
		</method>
		<method name="set_start_byte" c:identifier="rygel_http_byte_seek_response_set_start_byte">
			<return-value transfer-ownership="none">
				<type name="none"/>
			</return-value>
			<parameters>
				<parameter name="value" transfer-ownership="none">
					<type name="gint64" c:type="gint64"/>
				</parameter>
			</parameters>
		</method>
		<property name="end-byte" writable="1">
			<type name="gint64" c:type="gint64"/>
		</property>
		<method name="get_end_byte" c:identifier="rygel_http_byte_seek_response_get_end_byte">
			<return-value transfer-ownership="none">
				<type name="gint64" c:type="gint64"/>
			</return-value>
		</method>
		<method name="set_end_byte" c:identifier="rygel_http_byte_seek_response_set_end_byte">
			<return-value transfer-ownership="none">
				<type name="none"/>
			</return-value>
			<parameters>
				<parameter name="value" transfer-ownership="none">
					<type name="gint64" c:type="gint64"/>
				</parameter>
			</parameters>
		</method>
		<property name="range-length" writable="1">
			<type name="gint64" c:type="gint64"/>
		</property>
		<method name="get_range_length" c:identifier="rygel_http_byte_seek_response_get_range_length">
			<return-value transfer-ownership="none">
				<type name="gint64" c:type="gint64"/>
			</return-value>
		</method>
		<property name="total-size" writable="1">
			<type name="gint64" c:type="gint64"/>
		</property>
		<method name="get_total_size" c:identifier="rygel_http_byte_seek_response_get_total_size">
			<return-value transfer-ownership="none">
				<type name="gint64" c:type="gint64"/>
			</return-value>
		</method>
		<method name="set_total_size" c:identifier="rygel_http_byte_seek_response_set_total_size">
			<return-value transfer-ownership="none">
				<type name="none"/>
			</return-value>
			<parameters>
				<parameter name="value" transfer-ownership="none">
					<type name="gint64" c:type="gint64"/>
				</parameter>
			</parameters>
		</method>
	</class>
	<record name="HTTPByteSeekResponseClass" c:type="RygelHTTPByteSeekResponseClass" glib:is-gtype-struct-for="HTTPByteSeekResponse">
		<field name="parent_class">
			<type name="RygelServer.HTTPResponseElementClass" c:type="RygelHTTPResponseElementClass"/>
		</field>
	</record>
	<record name="HTTPByteSeekResponsePrivate" c:type="RygelHTTPByteSeekResponsePrivate" disguised="1"/>
	<class name="HTTPGetHandler" c:type="RygelHTTPGetHandler" glib:type-name="RygelHTTPGetHandler" glib:get-type="rygel_http_get_handler_get_type" glib:type-struct="HTTPGetHandlerClass" parent="GObject.Object" abstract="1">
		<field name="parent_instance">
			<type name="GObject.Object" c:type="GObject"/>
		</field>
		<field name="priv">
			<type name="HTTPGetHandlerPrivate" c:type="RygelHTTPGetHandlerPrivate*"/>
		</field>
		<constant name="TRANSFER_MODE_HEADER" c:identifier="RYGEL_HTTP_GET_HANDLER_TRANSFER_MODE_HEADER" value="transferMode.dlna.org">
			<type name="utf8" c:type="const gchar*"/>
		</constant>
		<constant name="TRANSFER_MODE_STREAMING" c:identifier="RYGEL_HTTP_GET_HANDLER_TRANSFER_MODE_STREAMING" value="Streaming">
			<type name="utf8" c:type="const gchar*"/>
		</constant>
		<constant name="TRANSFER_MODE_INTERACTIVE" c:identifier="RYGEL_HTTP_GET_HANDLER_TRANSFER_MODE_INTERACTIVE" value="Interactive">
			<type name="utf8" c:type="const gchar*"/>
		</constant>
		<constant name="TRANSFER_MODE_BACKGROUND" c:identifier="RYGEL_HTTP_GET_HANDLER_TRANSFER_MODE_BACKGROUND" value="Background">
			<type name="utf8" c:type="const gchar*"/>
		</constant>
		<method name="add_response_headers" c:identifier="rygel_http_get_handler_add_response_headers" throws="1">
			<return-value transfer-ownership="full">
				<type name="none"/>
			</return-value>
			<parameters>
				<parameter name="request" transfer-ownership="none">
					<type name="RygelServer.HTTPGet" c:type="RygelHTTPGet*"/>
				</parameter>
			</parameters>
		</method>
		<virtual-method name="add_response_headers" invoker="add_response_headers" throws="1">
			<return-value transfer-ownership="full">
				<type name="none"/>
			</return-value>
			<parameters>
				<parameter name="request" transfer-ownership="none">
					<type name="RygelServer.HTTPGet" c:type="RygelHTTPGet*"/>
				</parameter>
			</parameters>
		</virtual-method>
		<method name="get_default_transfer_mode" c:identifier="rygel_http_get_handler_get_default_transfer_mode">
			<return-value transfer-ownership="full">
				<type name="utf8" c:type="gchar*"/>
			</return-value>
		</method>
		<virtual-method name="get_default_transfer_mode" invoker="get_default_transfer_mode">
			<return-value transfer-ownership="full">
				<type name="utf8" c:type="gchar*"/>
			</return-value>
		</virtual-method>
		<method name="supports_transfer_mode" c:identifier="rygel_http_get_handler_supports_transfer_mode">
			<return-value transfer-ownership="full">
				<type name="gboolean" c:type="gboolean"/>
			</return-value>
			<parameters>
				<parameter name="mode" transfer-ownership="none">
					<type name="utf8" c:type="const gchar*"/>
				</parameter>
			</parameters>
		</method>
		<virtual-method name="supports_transfer_mode" invoker="supports_transfer_mode">
			<return-value transfer-ownership="full">
				<type name="gboolean" c:type="gboolean"/>
			</return-value>
			<parameters>
				<parameter name="mode" transfer-ownership="none">
					<type name="utf8" c:type="const gchar*"/>
				</parameter>
			</parameters>
		</virtual-method>
		<method name="get_resource_size" c:identifier="rygel_http_get_handler_get_resource_size">
			<return-value transfer-ownership="full">
				<type name="gint64" c:type="gint64"/>
			</return-value>
		</method>
		<virtual-method name="get_resource_size" invoker="get_resource_size">
			<return-value transfer-ownership="full">
				<type name="gint64" c:type="gint64"/>
			</return-value>
		</virtual-method>
		<method name="get_resource_duration" c:identifier="rygel_http_get_handler_get_resource_duration">
			<return-value transfer-ownership="full">
				<type name="gint64" c:type="gint64"/>
			</return-value>
		</method>
		<virtual-method name="get_resource_duration" invoker="get_resource_duration">
			<return-value transfer-ownership="full">
				<type name="gint64" c:type="gint64"/>
			</return-value>
		</virtual-method>
		<method name="supports_byte_seek" c:identifier="rygel_http_get_handler_supports_byte_seek">
			<return-value transfer-ownership="full">
				<type name="gboolean" c:type="gboolean"/>
			</return-value>
		</method>
		<virtual-method name="supports_byte_seek" invoker="supports_byte_seek">
			<return-value transfer-ownership="full">
				<type name="gboolean" c:type="gboolean"/>
			</return-value>
		</virtual-method>
		<method name="supports_time_seek" c:identifier="rygel_http_get_handler_supports_time_seek">
			<return-value transfer-ownership="full">
				<type name="gboolean" c:type="gboolean"/>
			</return-value>
		</method>
		<virtual-method name="supports_time_seek" invoker="supports_time_seek">
			<return-value transfer-ownership="full">
				<type name="gboolean" c:type="gboolean"/>
			</return-value>
		</virtual-method>
		<method name="supports_playspeed" c:identifier="rygel_http_get_handler_supports_playspeed">
			<return-value transfer-ownership="full">
				<type name="gboolean" c:type="gboolean"/>
			</return-value>
		</method>
		<virtual-method name="supports_playspeed" invoker="supports_playspeed">
			<return-value transfer-ownership="full">
				<type name="gboolean" c:type="gboolean"/>
			</return-value>
		</virtual-method>
		<method name="render_body" c:identifier="rygel_http_get_handler_render_body" throws="1">
			<return-value transfer-ownership="full">
				<type name="RygelServer.HTTPResponse" c:type="RygelHTTPResponse*"/>
			</return-value>
			<parameters>
				<parameter name="request" transfer-ownership="none">
					<type name="RygelServer.HTTPGet" c:type="RygelHTTPGet*"/>
				</parameter>
			</parameters>
		</method>
		<virtual-method name="render_body" invoker="render_body" throws="1">
			<return-value transfer-ownership="full">
				<type name="RygelServer.HTTPResponse" c:type="RygelHTTPResponse*"/>
			</return-value>
			<parameters>
				<parameter name="request" transfer-ownership="none">
					<type name="RygelServer.HTTPGet" c:type="RygelHTTPGet*"/>
				</parameter>
			</parameters>
		</virtual-method>
		<property name="cancellable" writable="1">
			<type name="Gio.Cancellable" c:type="GCancellable*"/>
		</property>
		<method name="get_cancellable" c:identifier="rygel_http_get_handler_get_cancellable">
			<return-value transfer-ownership="none">
				<type name="Gio.Cancellable" c:type="GCancellable*"/>
			</return-value>
		</method>
		<method name="set_cancellable" c:identifier="rygel_http_get_handler_set_cancellable">
			<return-value transfer-ownership="none">
				<type name="none"/>
			</return-value>
			<parameters>
				<parameter name="value" transfer-ownership="none">
					<type name="Gio.Cancellable" c:type="GCancellable*"/>
				</parameter>
			</parameters>
		</method>
	</class>
	<record name="HTTPGetHandlerClass" c:type="RygelHTTPGetHandlerClass" glib:is-gtype-struct-for="HTTPGetHandler">
		<field name="parent_class">
			<type name="GObject.ObjectClass" c:type="GObjectClass"/>
		</field>
				<field name="add_response_headers">
			<callback name="add_response_headers" c:type="add_response_headers" throws="1">
				<return-value transfer-ownership="full">
					<type name="none"/>
				</return-value>
				<parameters>
					<parameter name="self" transfer-ownership="none">
						<type name="RygelServer.HTTPGetHandler" c:type="RygelHTTPGetHandler*"/>
					</parameter>
					<parameter name="request" transfer-ownership="none">
						<type name="RygelServer.HTTPGet" c:type="RygelHTTPGet*"/>
					</parameter>
				</parameters>
			</callback>
		</field>
				<field name="get_default_transfer_mode">
			<callback name="get_default_transfer_mode" c:type="get_default_transfer_mode">
				<return-value transfer-ownership="full">
					<type name="utf8" c:type="gchar*"/>
				</return-value>
				<parameters>
					<parameter name="self" transfer-ownership="none">
						<type name="RygelServer.HTTPGetHandler" c:type="RygelHTTPGetHandler*"/>
					</parameter>
				</parameters>
			</callback>
		</field>
				<field name="supports_transfer_mode">
			<callback name="supports_transfer_mode" c:type="supports_transfer_mode">
				<return-value transfer-ownership="full">
					<type name="gboolean" c:type="gboolean"/>
				</return-value>
				<parameters>
					<parameter name="self" transfer-ownership="none">
						<type name="RygelServer.HTTPGetHandler" c:type="RygelHTTPGetHandler*"/>
					</parameter>
					<parameter name="mode" transfer-ownership="none">
						<type name="utf8" c:type="const gchar*"/>
					</parameter>
				</parameters>
			</callback>
		</field>
				<field name="get_resource_size">
			<callback name="get_resource_size" c:type="get_resource_size">
				<return-value transfer-ownership="full">
					<type name="gint64" c:type="gint64"/>
				</return-value>
				<parameters>
					<parameter name="self" transfer-ownership="none">
						<type name="RygelServer.HTTPGetHandler" c:type="RygelHTTPGetHandler*"/>
					</parameter>
				</parameters>
			</callback>
		</field>
				<field name="get_resource_duration">
			<callback name="get_resource_duration" c:type="get_resource_duration">
				<return-value transfer-ownership="full">
					<type name="gint64" c:type="gint64"/>
				</return-value>
				<parameters>
					<parameter name="self" transfer-ownership="none">
						<type name="RygelServer.HTTPGetHandler" c:type="RygelHTTPGetHandler*"/>
					</parameter>
				</parameters>
			</callback>
		</field>
				<field name="supports_byte_seek">
			<callback name="supports_byte_seek" c:type="supports_byte_seek">
				<return-value transfer-ownership="full">
					<type name="gboolean" c:type="gboolean"/>
				</return-value>
				<parameters>
					<parameter name="self" transfer-ownership="none">
						<type name="RygelServer.HTTPGetHandler" c:type="RygelHTTPGetHandler*"/>
					</parameter>
				</parameters>
			</callback>
		</field>
				<field name="supports_time_seek">
			<callback name="supports_time_seek" c:type="supports_time_seek">
				<return-value transfer-ownership="full">
					<type name="gboolean" c:type="gboolean"/>
				</return-value>
				<parameters>
					<parameter name="self" transfer-ownership="none">
						<type name="RygelServer.HTTPGetHandler" c:type="RygelHTTPGetHandler*"/>
					</parameter>
				</parameters>
			</callback>
		</field>
				<field name="supports_playspeed">
			<callback name="supports_playspeed" c:type="supports_playspeed">
				<return-value transfer-ownership="full">
					<type name="gboolean" c:type="gboolean"/>
				</return-value>
				<parameters>
					<parameter name="self" transfer-ownership="none">
						<type name="RygelServer.HTTPGetHandler" c:type="RygelHTTPGetHandler*"/>
					</parameter>
				</parameters>
			</callback>
		</field>
				<field name="render_body">
			<callback name="render_body" c:type="render_body" throws="1">
				<return-value transfer-ownership="full">
					<type name="RygelServer.HTTPResponse" c:type="RygelHTTPResponse*"/>
				</return-value>
				<parameters>
					<parameter name="self" transfer-ownership="none">
						<type name="RygelServer.HTTPGetHandler" c:type="RygelHTTPGetHandler*"/>
					</parameter>
					<parameter name="request" transfer-ownership="none">
						<type name="RygelServer.HTTPGet" c:type="RygelHTTPGet*"/>
					</parameter>
				</parameters>
			</callback>
		</field>
	</record>
	<record name="HTTPGetHandlerPrivate" c:type="RygelHTTPGetHandlerPrivate" disguised="1"/>
	<class name="HTTPGet" c:type="RygelHTTPGet" glib:type-name="RygelHTTPGet" glib:get-type="rygel_http_get_get_type" glib:type-struct="HTTPGetClass" parent="RygelServer.HTTPRequest">
		<field name="parent_instance">
			<type name="RygelServer.HTTPRequest" c:type="RygelHTTPRequest"/>
		</field>
		<field name="priv">
			<type name="HTTPGetPrivate" c:type="RygelHTTPGetPrivate*"/>
		</field>
		<field name="seek">
			<type name="RygelServer.HTTPSeekRequest" c:type="RygelHTTPSeekRequest*"/>
		</field>
		<field name="speed_request">
			<type name="RygelServer.PlaySpeedRequest" c:type="RygelPlaySpeedRequest*"/>
		</field>
		<field name="handler">
			<type name="RygelServer.HTTPGetHandler" c:type="RygelHTTPGetHandler*"/>
		</field>
		<constructor name="new" c:identifier="rygel_http_get_new">
			<return-value transfer-ownership="full">
				<type name="RygelServer.HTTPGet" c:type="RygelHTTPGet*"/>
			</return-value>
			<parameters>
				<parameter name="http_server" transfer-ownership="none">
					<type name="RygelServer.HTTPServer" c:type="RygelHTTPServer*"/>
				</parameter>
				<parameter name="server" transfer-ownership="none">
					<type name="Soup.Server" c:type="SoupServer*"/>
				</parameter>
				<parameter name="msg" transfer-ownership="none">
					<type name="Soup.Message" c:type="SoupMessage*"/>
				</parameter>
			</parameters>
		</constructor>
	</class>
	<record name="HTTPGetClass" c:type="RygelHTTPGetClass" glib:is-gtype-struct-for="HTTPGet">
		<field name="parent_class">
			<type name="RygelServer.HTTPRequestClass" c:type="RygelHTTPRequestClass"/>
		</field>
	</record>
	<record name="HTTPGetPrivate" c:type="RygelHTTPGetPrivate" disguised="1"/>
	<class name="HTTPItemURI" c:type="RygelHTTPItemURI" glib:type-name="RygelHTTPItemURI" glib:get-type="rygel_http_item_uri_get_type" glib:type-struct="HTTPItemURIClass" parent="GObject.Object">
		<field name="parent_instance">
			<type name="GObject.Object" c:type="GObject"/>
		</field>
		<field name="priv">
			<type name="HTTPItemURIPrivate" c:type="RygelHTTPItemURIPrivate*"/>
		</field>
		<field name="rygel_http_item_uri_mime_to_ext">
			<type name="Gee.HashMap" c:type="GeeHashMap*">
				<type name="utf8" c:type="gchar*"/>
				<type name="utf8" c:type="gchar*"/>
			</type>
		</field>
		<constructor name="new" c:identifier="rygel_http_item_uri_new">
			<return-value transfer-ownership="full">
				<type name="RygelServer.HTTPItemURI" c:type="RygelHTTPItemURI*"/>
			</return-value>
			<parameters>
				<parameter name="object" transfer-ownership="none">
					<type name="RygelServer.MediaObject" c:type="RygelMediaObject*"/>
				</parameter>
				<parameter name="http_server" transfer-ownership="none">
					<type name="RygelServer.HTTPServer" c:type="RygelHTTPServer*"/>
				</parameter>
				<parameter name="thumbnail_index" transfer-ownership="none">
					<type name="gint" c:type="gint"/>
				</parameter>
				<parameter name="subtitle_index" transfer-ownership="none">
					<type name="gint" c:type="gint"/>
				</parameter>
				<parameter name="resource_name" transfer-ownership="none" allow-none="1">
					<type name="utf8" c:type="const gchar*"/>
				</parameter>
			</parameters>
		</constructor>
		<constructor name="from_string" c:identifier="rygel_http_item_uri_new_from_string" throws="1">
			<return-value transfer-ownership="full">
				<type name="RygelServer.HTTPItemURI" c:type="RygelHTTPItemURI*"/>
			</return-value>
			<parameters>
				<parameter name="uri" transfer-ownership="none">
					<type name="utf8" c:type="const gchar*"/>
				</parameter>
				<parameter name="http_server" transfer-ownership="none">
					<type name="RygelServer.HTTPServer" c:type="RygelHTTPServer*"/>
				</parameter>
			</parameters>
		</constructor>
		<method name="to_string" c:identifier="rygel_http_item_uri_to_string">
			<return-value transfer-ownership="full">
				<type name="utf8" c:type="gchar*"/>
			</return-value>
		</method>
		<property name="item-id" writable="1">
			<type name="utf8" c:type="gchar*"/>
		</property>
		<method name="get_item_id" c:identifier="rygel_http_item_uri_get_item_id">
			<return-value transfer-ownership="none">
				<type name="utf8" c:type="const gchar*"/>
			</return-value>
		</method>
		<method name="set_item_id" c:identifier="rygel_http_item_uri_set_item_id">
			<return-value transfer-ownership="none">
				<type name="none"/>
			</return-value>
			<parameters>
				<parameter name="value" transfer-ownership="none">
					<type name="utf8" c:type="const gchar*"/>
				</parameter>
			</parameters>
		</method>
		<property name="thumbnail-index" writable="1">
			<type name="gint" c:type="gint"/>
		</property>
		<method name="get_thumbnail_index" c:identifier="rygel_http_item_uri_get_thumbnail_index">
			<return-value transfer-ownership="none">
				<type name="gint" c:type="gint"/>
			</return-value>
		</method>
		<method name="set_thumbnail_index" c:identifier="rygel_http_item_uri_set_thumbnail_index">
			<return-value transfer-ownership="none">
				<type name="none"/>
			</return-value>
			<parameters>
				<parameter name="value" transfer-ownership="none">
					<type name="gint" c:type="gint"/>
				</parameter>
			</parameters>
		</method>
		<property name="subtitle-index" writable="1">
			<type name="gint" c:type="gint"/>
		</property>
		<method name="get_subtitle_index" c:identifier="rygel_http_item_uri_get_subtitle_index">
			<return-value transfer-ownership="none">
				<type name="gint" c:type="gint"/>
			</return-value>
		</method>
		<method name="set_subtitle_index" c:identifier="rygel_http_item_uri_set_subtitle_index">
			<return-value transfer-ownership="none">
				<type name="none"/>
			</return-value>
			<parameters>
				<parameter name="value" transfer-ownership="none">
					<type name="gint" c:type="gint"/>
				</parameter>
			</parameters>
		</method>
		<property name="resource-name" writable="1">
			<type name="utf8" c:type="gchar*"/>
		</property>
		<method name="get_resource_name" c:identifier="rygel_http_item_uri_get_resource_name">
			<return-value transfer-ownership="none" allow-none="1">
				<type name="utf8" c:type="const gchar*"/>
			</return-value>
		</method>
		<method name="set_resource_name" c:identifier="rygel_http_item_uri_set_resource_name">
			<return-value transfer-ownership="none">
				<type name="none"/>
			</return-value>
			<parameters>
				<parameter name="value" transfer-ownership="none" allow-none="1">
					<type name="utf8" c:type="const gchar*"/>
				</parameter>
			</parameters>
		</method>
		<property name="http-server" writable="1">
			<type name="RygelServer.HTTPServer" c:type="RygelHTTPServer*"/>
		</property>
		<method name="get_http_server" c:identifier="rygel_http_item_uri_get_http_server">
			<return-value transfer-ownership="none">
				<type name="RygelServer.HTTPServer" c:type="RygelHTTPServer*"/>
			</return-value>
		</method>
		<method name="set_http_server" c:identifier="rygel_http_item_uri_set_http_server">
			<return-value transfer-ownership="none">
				<type name="none"/>
			</return-value>
			<parameters>
				<parameter name="value" transfer-ownership="none">
					<type name="RygelServer.HTTPServer" c:type="RygelHTTPServer*"/>
				</parameter>
			</parameters>
		</method>
		<property name="extension" writable="1">
			<type name="utf8" c:type="gchar*"/>
		</property>
		<method name="get_extension" c:identifier="rygel_http_item_uri_get_extension">
			<return-value transfer-ownership="full">
				<type name="utf8" c:type="gchar*"/>
			</return-value>
		</method>
		<method name="set_extension" c:identifier="rygel_http_item_uri_set_extension">
			<return-value transfer-ownership="none">
				<type name="none"/>
			</return-value>
			<parameters>
				<parameter name="value" transfer-ownership="none">
					<type name="utf8" c:type="const gchar*"/>
				</parameter>
			</parameters>
		</method>
	</class>
	<record name="HTTPItemURIClass" c:type="RygelHTTPItemURIClass" glib:is-gtype-struct-for="HTTPItemURI">
		<field name="parent_class">
			<type name="GObject.ObjectClass" c:type="GObjectClass"/>
		</field>
	</record>
	<record name="HTTPItemURIPrivate" c:type="RygelHTTPItemURIPrivate" disguised="1"/>
	<class name="HTTPRequest" c:type="RygelHTTPRequest" glib:type-name="RygelHTTPRequest" glib:get-type="rygel_http_request_get_type" glib:type-struct="HTTPRequestClass" parent="GObject.Object" abstract="1">
		<implements name="RygelServer.StateMachine"/>
		<field name="parent_instance">
			<type name="GObject.Object" c:type="GObject"/>
		</field>
		<field name="priv">
			<type name="HTTPRequestPrivate" c:type="RygelHTTPRequestPrivate*"/>
		</field>
		<field name="http_server">
			<type name="RygelServer.HTTPServer" c:type="RygelHTTPServer*"/>
		</field>
		<field name="server">
			<type name="Soup.Server" c:type="SoupServer*"/>
		</field>
		<field name="msg">
			<type name="Soup.Message" c:type="SoupMessage*"/>
		</field>
		<field name="uri">
			<type name="RygelServer.HTTPItemURI" c:type="RygelHTTPItemURI*"/>
		</field>
		<field name="object">
			<type name="RygelServer.MediaObject" c:type="RygelMediaObject*"/>
		</field>
		<method name="handle" c:identifier="rygel_http_request_handle">
			<return-value transfer-ownership="none">
				<type name="none"/>
			</return-value>
			<parameters>
				<parameter name="_callback_" transfer-ownership="none" allow-none="1" closure="1" scope="async">
					<type name="Gio.AsyncReadyCallback" c:type="GAsyncReadyCallback"/>
				</parameter>
				<parameter name="_callback__target" transfer-ownership="none" allow-none="1">
					<type name="gpointer" c:type="void*"/>
				</parameter>
			</parameters>
		</method>
		<method name="handle_finish" c:identifier="rygel_http_request_handle_finish" throws="1">
			<return-value transfer-ownership="full">
				<type name="none"/>
			</return-value>
			<parameters>
				<parameter name="_res_" transfer-ownership="none">
					<type name="Gio.AsyncResult" c:type="GAsyncResult*"/>
				</parameter>
			</parameters>
		</method>
		<virtual-method name="handle" invoker="handle">
			<return-value transfer-ownership="none">
				<type name="none"/>
			</return-value>
			<parameters>
				<parameter name="_callback_" transfer-ownership="none" allow-none="1" closure="1" scope="async">
					<type name="Gio.AsyncReadyCallback" c:type="GAsyncReadyCallback"/>
				</parameter>
				<parameter name="_callback__target" transfer-ownership="none" allow-none="1">
					<type name="gpointer" c:type="void*"/>
				</parameter>
			</parameters>
		</virtual-method>
		<virtual-method name="handle_finish" invoker="handle_finish" throws="1">
			<return-value transfer-ownership="full">
				<type name="none"/>
			</return-value>
			<parameters>
				<parameter name="_res_" transfer-ownership="none">
					<type name="Gio.AsyncResult" c:type="GAsyncResult*"/>
				</parameter>
			</parameters>
		</virtual-method>
		<method name="find_item" c:identifier="rygel_http_request_find_item">
			<return-value transfer-ownership="none">
				<type name="none"/>
			</return-value>
			<parameters>
				<parameter name="_callback_" transfer-ownership="none" allow-none="1" closure="1" scope="async">
					<type name="Gio.AsyncReadyCallback" c:type="GAsyncReadyCallback"/>
				</parameter>
				<parameter name="_callback__target" transfer-ownership="none" allow-none="1">
					<type name="gpointer" c:type="void*"/>
				</parameter>
			</parameters>
		</method>
		<method name="find_item_finish" c:identifier="rygel_http_request_find_item_finish" throws="1">
			<return-value transfer-ownership="full">
				<type name="none"/>
			</return-value>
			<parameters>
				<parameter name="_res_" transfer-ownership="none">
					<type name="Gio.AsyncResult" c:type="GAsyncResult*"/>
				</parameter>
			</parameters>
		</method>
		<virtual-method name="find_item" invoker="find_item">
			<return-value transfer-ownership="none">
				<type name="none"/>
			</return-value>
			<parameters>
				<parameter name="_callback_" transfer-ownership="none" allow-none="1" closure="1" scope="async">
					<type name="Gio.AsyncReadyCallback" c:type="GAsyncReadyCallback"/>
				</parameter>
				<parameter name="_callback__target" transfer-ownership="none" allow-none="1">
					<type name="gpointer" c:type="void*"/>
				</parameter>
			</parameters>
		</virtual-method>
		<virtual-method name="find_item_finish" invoker="find_item_finish" throws="1">
			<return-value transfer-ownership="full">
				<type name="none"/>
			</return-value>
			<parameters>
				<parameter name="_res_" transfer-ownership="none">
					<type name="Gio.AsyncResult" c:type="GAsyncResult*"/>
				</parameter>
			</parameters>
		</virtual-method>
		<method name="handle_error" c:identifier="rygel_http_request_handle_error">
			<return-value transfer-ownership="full">
				<type name="none"/>
			</return-value>
			<parameters>
				<parameter name="error" transfer-ownership="none">
					<type name="GLib.Error"/>
				</parameter>
			</parameters>
		</method>
		<method name="end" c:identifier="rygel_http_request_end">
			<return-value transfer-ownership="full">
				<type name="none"/>
			</return-value>
			<parameters>
				<parameter name="status" transfer-ownership="none">
					<type name="guint" c:type="guint"/>
				</parameter>
				<parameter name="reason" transfer-ownership="none" allow-none="1">
					<type name="utf8" c:type="const gchar*"/>
				</parameter>
			</parameters>
		</method>
	</class>
	<record name="HTTPRequestClass" c:type="RygelHTTPRequestClass" glib:is-gtype-struct-for="HTTPRequest">
		<field name="parent_class">
			<type name="GObject.ObjectClass" c:type="GObjectClass"/>
		</field>
				<field name="handle">
			<callback name="handle" c:type="handle">
				<return-value transfer-ownership="none">
					<type name="none"/>
				</return-value>
				<parameters>
					<parameter name="self" transfer-ownership="none">
						<type name="RygelServer.HTTPRequest" c:type="RygelHTTPRequest*"/>
					</parameter>
					<parameter name="_callback_" transfer-ownership="none" allow-none="1" closure="2" scope="async">
						<type name="Gio.AsyncReadyCallback" c:type="GAsyncReadyCallback"/>
					</parameter>
					<parameter name="_callback__target" transfer-ownership="none" allow-none="1">
						<type name="gpointer" c:type="void*"/>
					</parameter>
				</parameters>
			</callback>
		</field>
		<field name="handle_finish">
			<callback name="handle_finish" c:type="handle_finish" throws="1">
				<return-value transfer-ownership="full">
					<type name="none"/>
				</return-value>
				<parameters>
					<parameter name="self" transfer-ownership="none">
						<type name="RygelServer.HTTPRequest" c:type="RygelHTTPRequest*"/>
					</parameter>
					<parameter name="_res_" transfer-ownership="none">
						<type name="Gio.AsyncResult" c:type="GAsyncResult*"/>
					</parameter>
				</parameters>
			</callback>
		</field>
				<field name="find_item">
			<callback name="find_item" c:type="find_item">
				<return-value transfer-ownership="none">
					<type name="none"/>
				</return-value>
				<parameters>
					<parameter name="self" transfer-ownership="none">
						<type name="RygelServer.HTTPRequest" c:type="RygelHTTPRequest*"/>
					</parameter>
					<parameter name="_callback_" transfer-ownership="none" allow-none="1" closure="2" scope="async">
						<type name="Gio.AsyncReadyCallback" c:type="GAsyncReadyCallback"/>
					</parameter>
					<parameter name="_callback__target" transfer-ownership="none" allow-none="1">
						<type name="gpointer" c:type="void*"/>
					</parameter>
				</parameters>
			</callback>
		</field>
		<field name="find_item_finish">
			<callback name="find_item_finish" c:type="find_item_finish" throws="1">
				<return-value transfer-ownership="full">
					<type name="none"/>
				</return-value>
				<parameters>
					<parameter name="self" transfer-ownership="none">
						<type name="RygelServer.HTTPRequest" c:type="RygelHTTPRequest*"/>
					</parameter>
					<parameter name="_res_" transfer-ownership="none">
						<type name="Gio.AsyncResult" c:type="GAsyncResult*"/>
					</parameter>
				</parameters>
			</callback>
		</field>
	</record>
	<record name="HTTPRequestPrivate" c:type="RygelHTTPRequestPrivate" disguised="1"/>
	<class name="HTTPResponse" c:type="RygelHTTPResponse" glib:type-name="RygelHTTPResponse" glib:get-type="rygel_http_response_get_type" glib:type-struct="HTTPResponseClass" parent="GObject.Object">
		<implements name="RygelServer.StateMachine"/>
		<field name="parent_instance">
			<type name="GObject.Object" c:type="GObject"/>
		</field>
		<field name="priv">
			<type name="HTTPResponsePrivate" c:type="RygelHTTPResponsePrivate*"/>
		</field>
		<field name="msg">
			<type name="Soup.Message" c:type="SoupMessage*"/>
		</field>
		<field name="seek">
			<type name="RygelServer.HTTPSeekRequest" c:type="RygelHTTPSeekRequest*"/>
		</field>
		<field name="speed">
			<type name="RygelServer.PlaySpeedRequest" c:type="RygelPlaySpeedRequest*"/>
		</field>
		<constructor name="new" c:identifier="rygel_http_response_new" throws="1">
			<return-value transfer-ownership="full">
				<type name="RygelServer.HTTPResponse" c:type="RygelHTTPResponse*"/>
			</return-value>
			<parameters>
				<parameter name="request" transfer-ownership="none">
					<type name="RygelServer.HTTPGet" c:type="RygelHTTPGet*"/>
				</parameter>
				<parameter name="request_handler" transfer-ownership="none">
					<type name="RygelServer.HTTPGetHandler" c:type="RygelHTTPGetHandler*"/>
				</parameter>
				<parameter name="src" transfer-ownership="none">
					<type name="RygelServer.DataSource" c:type="RygelDataSource*"/>
				</parameter>
			</parameters>
		</constructor>
		<method name="preroll" c:identifier="rygel_http_response_preroll" throws="1">
			<return-value transfer-ownership="full" allow-none="1">
				<type name="Gee.List" c:type="GeeList*">
					<type name="RygelServer.HTTPResponseElement" c:type="RygelHTTPResponseElement*"/>
				</type>
			</return-value>
		</method>
		<method name="end" c:identifier="rygel_http_response_end">
			<return-value transfer-ownership="full">
				<type name="none"/>
			</return-value>
			<parameters>
				<parameter name="aborted" transfer-ownership="none">
					<type name="gboolean" c:type="gboolean"/>
				</parameter>
				<parameter name="status" transfer-ownership="none">
					<type name="guint" c:type="guint"/>
				</parameter>
			</parameters>
		</method>
		<virtual-method name="end" invoker="end">
			<return-value transfer-ownership="full">
				<type name="none"/>
			</return-value>
			<parameters>
				<parameter name="aborted" transfer-ownership="none">
					<type name="gboolean" c:type="gboolean"/>
				</parameter>
				<parameter name="status" transfer-ownership="none">
					<type name="guint" c:type="guint"/>
				</parameter>
			</parameters>
		</virtual-method>
		<property name="server" writable="1">
			<type name="Soup.Server" c:type="SoupServer*"/>
		</property>
		<method name="get_server" c:identifier="rygel_http_response_get_server">
			<return-value transfer-ownership="none">
				<type name="Soup.Server" c:type="SoupServer*"/>
			</return-value>
		</method>
		<property name="priority">
			<type name="gint" c:type="gint"/>
		</property>
		<method name="get_priority" c:identifier="rygel_http_response_get_priority">
			<return-value transfer-ownership="none">
				<type name="gint" c:type="gint"/>
			</return-value>
		</method>
	</class>
	<record name="HTTPResponseClass" c:type="RygelHTTPResponseClass" glib:is-gtype-struct-for="HTTPResponse">
		<field name="parent_class">
			<type name="GObject.ObjectClass" c:type="GObjectClass"/>
		</field>
				<field name="end">
			<callback name="end" c:type="end">
				<return-value transfer-ownership="full">
					<type name="none"/>
				</return-value>
				<parameters>
					<parameter name="self" transfer-ownership="none">
						<type name="RygelServer.HTTPResponse" c:type="RygelHTTPResponse*"/>
					</parameter>
					<parameter name="aborted" transfer-ownership="none">
						<type name="gboolean" c:type="gboolean"/>
					</parameter>
					<parameter name="status" transfer-ownership="none">
						<type name="guint" c:type="guint"/>
					</parameter>
				</parameters>
			</callback>
		</field>
	</record>
	<record name="HTTPResponsePrivate" c:type="RygelHTTPResponsePrivate" disguised="1"/>
	<class name="HTTPResponseElement" c:type="RygelHTTPResponseElement" glib:type-name="RygelHTTPResponseElement" glib:get-type="rygel_http_response_element_get_type" glib:type-struct="HTTPResponseElementClass" parent="GObject.Object" abstract="1">
		<field name="parent_instance">
			<type name="GObject.Object" c:type="GObject"/>
		</field>
		<field name="priv">
			<type name="HTTPResponseElementPrivate" c:type="RygelHTTPResponseElementPrivate*"/>
		</field>
		<constant name="UNSPECIFIED" c:identifier="RYGEL_HTTP_RESPONSE_ELEMENT_UNSPECIFIED" value="-1">
			<type name="gint" c:type="gint"/>
		</constant>
		<method name="add_response_headers" c:identifier="rygel_http_response_element_add_response_headers">
			<return-value transfer-ownership="full">
				<type name="none"/>
			</return-value>
			<parameters>
				<parameter name="request" transfer-ownership="none">
					<type name="RygelServer.HTTPRequest" c:type="RygelHTTPRequest*"/>
				</parameter>
			</parameters>
		</method>
		<virtual-method name="add_response_headers" invoker="add_response_headers">
			<return-value transfer-ownership="full">
				<type name="none"/>
			</return-value>
			<parameters>
				<parameter name="request" transfer-ownership="none">
					<type name="RygelServer.HTTPRequest" c:type="RygelHTTPRequest*"/>
				</parameter>
			</parameters>
		</virtual-method>
		<method name="to_string" c:identifier="rygel_http_response_element_to_string">
			<return-value transfer-ownership="full">
				<type name="utf8" c:type="gchar*"/>
			</return-value>
		</method>
		<virtual-method name="to_string" invoker="to_string">
			<return-value transfer-ownership="full">
				<type name="utf8" c:type="gchar*"/>
			</return-value>
		</virtual-method>
	</class>
	<record name="HTTPResponseElementClass" c:type="RygelHTTPResponseElementClass" glib:is-gtype-struct-for="HTTPResponseElement">
		<field name="parent_class">
			<type name="GObject.ObjectClass" c:type="GObjectClass"/>
		</field>
				<field name="add_response_headers">
			<callback name="add_response_headers" c:type="add_response_headers">
				<return-value transfer-ownership="full">
					<type name="none"/>
				</return-value>
				<parameters>
					<parameter name="self" transfer-ownership="none">
						<type name="RygelServer.HTTPResponseElement" c:type="RygelHTTPResponseElement*"/>
					</parameter>
					<parameter name="request" transfer-ownership="none">
						<type name="RygelServer.HTTPRequest" c:type="RygelHTTPRequest*"/>
					</parameter>
				</parameters>
			</callback>
		</field>
				<field name="to_string">
			<callback name="to_string" c:type="to_string">
				<return-value transfer-ownership="full">
					<type name="utf8" c:type="gchar*"/>
				</return-value>
				<parameters>
					<parameter name="self" transfer-ownership="none">
						<type name="RygelServer.HTTPResponseElement" c:type="RygelHTTPResponseElement*"/>
					</parameter>
				</parameters>
			</callback>
		</field>
	</record>
	<record name="HTTPResponseElementPrivate" c:type="RygelHTTPResponseElementPrivate" disguised="1"/>
	<class name="HTTPServer" c:type="RygelHTTPServer" glib:type-name="RygelHTTPServer" glib:get-type="rygel_http_server_get_type" glib:type-struct="HTTPServerClass" parent="GObject.Object">
		<implements name="RygelServer.StateMachine"/>
		<field name="parent_instance">
			<type name="GObject.Object" c:type="GObject"/>
		</field>
		<field name="priv">
			<type name="HTTPServerPrivate" c:type="RygelHTTPServerPrivate*"/>
		</field>
		<field name="root_container">
			<type name="RygelServer.MediaContainer" c:type="RygelMediaContainer*"/>
		</field>
		<field name="context">
			<type name="GUPnP.Context" c:type="GUPnPContext*"/>
		</field>
		<field name="replacements">
			<type name="GLib.HashTable" c:type="GHashTable*">
				<type name="utf8" c:type="gchar*"/>
				<type name="utf8" c:type="gchar*"/>
			</type>
		</field>
		<constructor name="new" c:identifier="rygel_http_server_new">
			<return-value transfer-ownership="full">
				<type name="RygelServer.HTTPServer" c:type="RygelHTTPServer*"/>
			</return-value>
			<parameters>
				<parameter name="content_dir" transfer-ownership="none">
					<type name="RygelServer.ContentDirectory" c:type="RygelContentDirectory*"/>
				</parameter>
				<parameter name="name" transfer-ownership="none">
					<type name="utf8" c:type="const gchar*"/>
				</parameter>
			</parameters>
		</constructor>
		<method name="set_resource_delivery_options" c:identifier="rygel_http_server_set_resource_delivery_options">
			<return-value transfer-ownership="full">
				<type name="none"/>
			</return-value>
			<parameters>
				<parameter name="res" transfer-ownership="none">
					<type name="RygelServer.MediaResource" c:type="RygelMediaResource*"/>
				</parameter>
			</parameters>
		</method>
		<method name="need_proxy" c:identifier="rygel_http_server_need_proxy">
			<return-value transfer-ownership="full">
				<type name="gboolean" c:type="gboolean"/>
			</return-value>
			<parameters>
				<parameter name="uri" transfer-ownership="none">
					<type name="utf8" c:type="const gchar*"/>
				</parameter>
			</parameters>
		</method>
		<method name="get_replacements" c:identifier="rygel_http_server_get_replacements">
			<return-value transfer-ownership="full">
				<type name="GLib.HashTable" c:type="GHashTable*">
					<type name="utf8" c:type="gchar*"/>
					<type name="utf8" c:type="gchar*"/>
				</type>
			</return-value>
		</method>
		<method name="is_local" c:identifier="rygel_http_server_is_local">
			<return-value transfer-ownership="full">
				<type name="gboolean" c:type="gboolean"/>
			</return-value>
		</method>
		<property name="path-root" writable="1">
			<type name="utf8" c:type="gchar*"/>
		</property>
		<method name="get_path_root" c:identifier="rygel_http_server_get_path_root">
			<return-value transfer-ownership="none">
				<type name="utf8" c:type="const gchar*"/>
			</return-value>
		</method>
		<property name="server-name" writable="1">
			<type name="utf8" c:type="gchar*"/>
		</property>
		<method name="get_server_name" c:identifier="rygel_http_server_get_server_name">
			<return-value transfer-ownership="none">
				<type name="utf8" c:type="const gchar*"/>
			</return-value>
		</method>
		<method name="set_server_name" c:identifier="rygel_http_server_set_server_name">
			<return-value transfer-ownership="none">
				<type name="none"/>
			</return-value>
			<parameters>
				<parameter name="value" transfer-ownership="none">
					<type name="utf8" c:type="const gchar*"/>
				</parameter>
			</parameters>
		</method>
	</class>
	<record name="HTTPServerClass" c:type="RygelHTTPServerClass" glib:is-gtype-struct-for="HTTPServer">
		<field name="parent_class">
			<type name="GObject.ObjectClass" c:type="GObjectClass"/>
		</field>
				<field name="get_protocol">
			<callback name="get_protocol" c:type="get_protocol">
				<return-value transfer-ownership="full">
					<type name="utf8" c:type="gchar*"/>
				</return-value>
				<parameters>
					<parameter name="self" transfer-ownership="none">
						<type name="RygelServer.HTTPServer" c:type="RygelHTTPServer*"/>
					</parameter>
				</parameters>
			</callback>
		</field>
				<field name="get_protocol_info">
			<callback name="get_protocol_info" c:type="get_protocol_info">
				<return-value transfer-ownership="full">
					<type name="Gee.ArrayList" c:type="GeeArrayList*">
						<type name="GUPnPAV.ProtocolInfo" c:type="GUPnPProtocolInfo*"/>
					</type>
				</return-value>
				<parameters>
					<parameter name="self" transfer-ownership="none">
						<type name="RygelServer.HTTPServer" c:type="RygelHTTPServer*"/>
					</parameter>
				</parameters>
			</callback>
		</field>
	</record>
	<record name="HTTPServerPrivate" c:type="RygelHTTPServerPrivate" disguised="1"/>
	<class name="HTTPTimeSeekRequest" c:type="RygelHTTPTimeSeekRequest" glib:type-name="RygelHTTPTimeSeekRequest" glib:get-type="rygel_http_time_seek_request_get_type" glib:type-struct="HTTPTimeSeekRequestClass" parent="RygelServer.HTTPSeekRequest">
		<field name="parent_instance">
			<type name="RygelServer.HTTPSeekRequest" c:type="RygelHTTPSeekRequest"/>
		</field>
		<field name="priv">
			<type name="HTTPTimeSeekRequestPrivate" c:type="RygelHTTPTimeSeekRequestPrivate*"/>
		</field>
		<field name="start_time">
			<type name="gint64" c:type="gint64"/>
		</field>
		<field name="end_time">
			<type name="gint64" c:type="gint64"/>
		</field>
		<field name="range_duration">
			<type name="gint64" c:type="gint64"/>
		</field>
		<field name="total_duration">
			<type name="gint64" c:type="gint64"/>
		</field>
		<constant name="TIMESEEKRANGE_HEADER" c:identifier="RYGEL_HTTP_TIME_SEEK_REQUEST_TIMESEEKRANGE_HEADER" value="TimeSeekRange.dlna.org">
			<type name="utf8" c:type="const gchar*"/>
		</constant>
		<method name="to_string" c:identifier="rygel_http_time_seek_request_to_string">
			<return-value transfer-ownership="full">
				<type name="utf8" c:type="gchar*"/>
			</return-value>
		</method>
		<function name="supported" c:identifier="rygel_http_time_seek_request_supported">
			<return-value transfer-ownership="full">
				<type name="gboolean" c:type="gboolean"/>
			</return-value>
			<parameters>
				<parameter name="message" transfer-ownership="none">
					<type name="Soup.Message" c:type="SoupMessage*"/>
				</parameter>
				<parameter name="handler" transfer-ownership="none">
					<type name="RygelServer.HTTPGetHandler" c:type="RygelHTTPGetHandler*"/>
				</parameter>
			</parameters>
		</function>
		<function name="requested" c:identifier="rygel_http_time_seek_request_requested">
			<return-value transfer-ownership="full">
				<type name="gboolean" c:type="gboolean"/>
			</return-value>
			<parameters>
				<parameter name="message" transfer-ownership="none">
					<type name="Soup.Message" c:type="SoupMessage*"/>
				</parameter>
			</parameters>
		</function>
	</class>
	<record name="HTTPTimeSeekRequestClass" c:type="RygelHTTPTimeSeekRequestClass" glib:is-gtype-struct-for="HTTPTimeSeekRequest">
		<field name="parent_class">
			<type name="RygelServer.HTTPSeekRequestClass" c:type="RygelHTTPSeekRequestClass"/>
		</field>
	</record>
	<record name="HTTPTimeSeekRequestPrivate" c:type="RygelHTTPTimeSeekRequestPrivate" disguised="1"/>
	<class name="HTTPTimeSeekResponse" c:type="RygelHTTPTimeSeekResponse" glib:type-name="RygelHTTPTimeSeekResponse" glib:get-type="rygel_http_time_seek_response_get_type" glib:type-struct="HTTPTimeSeekResponseClass" parent="RygelServer.HTTPResponseElement">
		<field name="parent_instance">
			<type name="RygelServer.HTTPResponseElement" c:type="RygelHTTPResponseElement"/>
		</field>
		<field name="priv">
			<type name="HTTPTimeSeekResponsePrivate" c:type="RygelHTTPTimeSeekResponsePrivate*"/>
		</field>
		<constructor name="new" c:identifier="rygel_http_time_seek_response_new">
			<return-value transfer-ownership="full">
				<type name="RygelServer.HTTPTimeSeekResponse" c:type="RygelHTTPTimeSeekResponse*"/>
			</return-value>
			<parameters>
				<parameter name="start_time" transfer-ownership="none">
					<type name="gint64" c:type="gint64"/>
				</parameter>
				<parameter name="end_time" transfer-ownership="none">
					<type name="gint64" c:type="gint64"/>
				</parameter>
				<parameter name="total_duration" transfer-ownership="none">
					<type name="gint64" c:type="gint64"/>
				</parameter>
				<parameter name="start_byte" transfer-ownership="none">
					<type name="gint64" c:type="gint64"/>
				</parameter>
				<parameter name="end_byte" transfer-ownership="none">
					<type name="gint64" c:type="gint64"/>
				</parameter>
				<parameter name="total_size" transfer-ownership="none">
					<type name="gint64" c:type="gint64"/>
				</parameter>
			</parameters>
		</constructor>
		<constructor name="time_only" c:identifier="rygel_http_time_seek_response_new_time_only">
			<return-value transfer-ownership="full">
				<type name="RygelServer.HTTPTimeSeekResponse" c:type="RygelHTTPTimeSeekResponse*"/>
			</return-value>
			<parameters>
				<parameter name="start_time" transfer-ownership="none">
					<type name="gint64" c:type="gint64"/>
				</parameter>
				<parameter name="end_time" transfer-ownership="none">
					<type name="gint64" c:type="gint64"/>
				</parameter>
				<parameter name="total_duration" transfer-ownership="none">
					<type name="gint64" c:type="gint64"/>
				</parameter>
			</parameters>
		</constructor>
		<constructor name="with_length" c:identifier="rygel_http_time_seek_response_new_with_length">
			<return-value transfer-ownership="full">
				<type name="RygelServer.HTTPTimeSeekResponse" c:type="RygelHTTPTimeSeekResponse*"/>
			</return-value>
			<parameters>
				<parameter name="start_time" transfer-ownership="none">
					<type name="gint64" c:type="gint64"/>
				</parameter>
				<parameter name="end_time" transfer-ownership="none">
					<type name="gint64" c:type="gint64"/>
				</parameter>
				<parameter name="total_duration" transfer-ownership="none">
					<type name="gint64" c:type="gint64"/>
				</parameter>
				<parameter name="start_byte" transfer-ownership="none">
					<type name="gint64" c:type="gint64"/>
				</parameter>
				<parameter name="end_byte" transfer-ownership="none">
					<type name="gint64" c:type="gint64"/>
				</parameter>
				<parameter name="total_size" transfer-ownership="none">
					<type name="gint64" c:type="gint64"/>
				</parameter>
				<parameter name="response_length" transfer-ownership="none">
					<type name="gint64" c:type="gint64"/>
				</parameter>
			</parameters>
		</constructor>
		<constructor name="from_request" c:identifier="rygel_http_time_seek_response_new_from_request">
			<return-value transfer-ownership="full">
				<type name="RygelServer.HTTPTimeSeekResponse" c:type="RygelHTTPTimeSeekResponse*"/>
			</return-value>
			<parameters>
				<parameter name="time_seek_request" transfer-ownership="none">
					<type name="RygelServer.HTTPTimeSeekRequest" c:type="RygelHTTPTimeSeekRequest*"/>
				</parameter>
				<parameter name="total_duration" transfer-ownership="none">
					<type name="gint64" c:type="gint64"/>
				</parameter>
			</parameters>
		</constructor>
		<property name="start-time" writable="1">
			<type name="gint64" c:type="gint64"/>
		</property>
		<method name="get_start_time" c:identifier="rygel_http_time_seek_response_get_start_time">
			<return-value transfer-ownership="none">
				<type name="gint64" c:type="gint64"/>
			</return-value>
		</method>
		<property name="end-time" writable="1">
			<type name="gint64" c:type="gint64"/>
		</property>
		<method name="get_end_time" c:identifier="rygel_http_time_seek_response_get_end_time">
			<return-value transfer-ownership="none">
				<type name="gint64" c:type="gint64"/>
			</return-value>
		</method>
		<property name="range-duration" writable="1">
			<type name="gint64" c:type="gint64"/>
		</property>
		<method name="get_range_duration" c:identifier="rygel_http_time_seek_response_get_range_duration">
			<return-value transfer-ownership="none">
				<type name="gint64" c:type="gint64"/>
			</return-value>
		</method>
		<property name="total-duration" writable="1">
			<type name="gint64" c:type="gint64"/>
		</property>
		<method name="get_total_duration" c:identifier="rygel_http_time_seek_response_get_total_duration">
			<return-value transfer-ownership="none">
				<type name="gint64" c:type="gint64"/>
			</return-value>
		</method>
		<property name="start-byte" writable="1">
			<type name="gint64" c:type="gint64"/>
		</property>
		<method name="get_start_byte" c:identifier="rygel_http_time_seek_response_get_start_byte">
			<return-value transfer-ownership="none">
				<type name="gint64" c:type="gint64"/>
			</return-value>
		</method>
		<property name="end-byte" writable="1">
			<type name="gint64" c:type="gint64"/>
		</property>
		<method name="get_end_byte" c:identifier="rygel_http_time_seek_response_get_end_byte">
			<return-value transfer-ownership="none">
				<type name="gint64" c:type="gint64"/>
			</return-value>
		</method>
		<property name="response-length" writable="1">
			<type name="gint64" c:type="gint64"/>
		</property>
		<method name="get_response_length" c:identifier="rygel_http_time_seek_response_get_response_length">
			<return-value transfer-ownership="none">
				<type name="gint64" c:type="gint64"/>
			</return-value>
		</method>
		<property name="total-size" writable="1">
			<type name="gint64" c:type="gint64"/>
		</property>
		<method name="get_total_size" c:identifier="rygel_http_time_seek_response_get_total_size">
			<return-value transfer-ownership="none">
				<type name="gint64" c:type="gint64"/>
			</return-value>
		</method>
	</class>
	<record name="HTTPTimeSeekResponseClass" c:type="RygelHTTPTimeSeekResponseClass" glib:is-gtype-struct-for="HTTPTimeSeekResponse">
		<field name="parent_class">
			<type name="RygelServer.HTTPResponseElementClass" c:type="RygelHTTPResponseElementClass"/>
		</field>
	</record>
	<record name="HTTPTimeSeekResponsePrivate" c:type="RygelHTTPTimeSeekResponsePrivate" disguised="1"/>
	<class name="Serializer" c:type="RygelSerializer" glib:type-name="RygelSerializer" glib:get-type="rygel_serializer_get_type" glib:type-struct="SerializerClass" parent="GObject.Object">
		<field name="parent_instance">
			<type name="GObject.Object" c:type="GObject"/>
		</field>
		<field name="priv">
			<type name="SerializerPrivate" c:type="RygelSerializerPrivate*"/>
		</field>
		<constructor name="new" c:identifier="rygel_serializer_new">
			<return-value transfer-ownership="full">
				<type name="RygelServer.Serializer" c:type="RygelSerializer*"/>
			</return-value>
			<parameters>
				<parameter name="type" transfer-ownership="none">
					<type name="RygelServer.SerializerType" c:type="RygelSerializerType"/>
				</parameter>
			</parameters>
		</constructor>
		<method name="add_item" c:identifier="rygel_serializer_add_item">
			<return-value transfer-ownership="full" allow-none="1">
				<type name="GUPnPAV.DIDLLiteItem" c:type="GUPnPDIDLLiteItem*"/>
			</return-value>
		</method>
		<method name="add_container" c:identifier="rygel_serializer_add_container">
			<return-value transfer-ownership="full" allow-none="1">
				<type name="GUPnPAV.DIDLLiteContainer" c:type="GUPnPDIDLLiteContainer*"/>
			</return-value>
		</method>
		<method name="filter" c:identifier="rygel_serializer_filter">
			<return-value transfer-ownership="full">
				<type name="none"/>
			</return-value>
			<parameters>
				<parameter name="filter_string" transfer-ownership="none">
					<type name="utf8" c:type="const gchar*"/>
				</parameter>
			</parameters>
		</method>
		<method name="get_string" c:identifier="rygel_serializer_get_string">
			<return-value transfer-ownership="full">
				<type name="utf8" c:type="gchar*"/>
			</return-value>
		</method>
		<property name="serializer-type" writable="1" construct-only="1">
			<type name="RygelServer.SerializerType" c:type="RygelSerializerType"/>
		</property>
	</class>
	<record name="SerializerClass" c:type="RygelSerializerClass" glib:is-gtype-struct-for="Serializer">
		<field name="parent_class">
			<type name="GObject.ObjectClass" c:type="GObjectClass"/>
		</field>
	</record>
	<record name="SerializerPrivate" c:type="RygelSerializerPrivate" disguised="1"/>
	<record name="PlaySpeed">
		<field name="numerator">
			<type name="gint" c:type="gint"/>
		</field>
		<field name="denominator">
			<type name="guint" c:type="guint"/>
		</field>
		<constructor name="new" c:identifier="rygel_play_speed_new">
			<return-value transfer-ownership="full">
				<type name="RygelServer.PlaySpeed" c:type="RygelPlaySpeed*"/>
			</return-value>
			<parameters>
				<parameter name="numerator" transfer-ownership="none">
					<type name="gint" c:type="gint"/>
				</parameter>
				<parameter name="denominator" transfer-ownership="none">
					<type name="guint" c:type="guint"/>
				</parameter>
			</parameters>
		</constructor>
		<constructor name="from_string" c:identifier="rygel_play_speed_new_from_string" throws="1">
			<return-value transfer-ownership="full">
				<type name="RygelServer.PlaySpeed" c:type="RygelPlaySpeed*"/>
			</return-value>
			<parameters>
				<parameter name="speed" transfer-ownership="none">
					<type name="utf8" c:type="const gchar*"/>
				</parameter>
			</parameters>
		</constructor>
		<method name="equals" c:identifier="rygel_play_speed_equals">
			<return-value transfer-ownership="full">
				<type name="gboolean" c:type="gboolean"/>
			</return-value>
			<parameters>
				<parameter name="that" transfer-ownership="none">
					<type name="RygelServer.PlaySpeed" c:type="RygelPlaySpeed*"/>
				</parameter>
			</parameters>
		</method>
		<method name="is_positive" c:identifier="rygel_play_speed_is_positive">
			<return-value transfer-ownership="full">
				<type name="gboolean" c:type="gboolean"/>
			</return-value>
		</method>
		<method name="is_normal_rate" c:identifier="rygel_play_speed_is_normal_rate">
			<return-value transfer-ownership="full">
				<type name="gboolean" c:type="gboolean"/>
			</return-value>
		</method>
		<method name="to_string" c:identifier="rygel_play_speed_to_string">
			<return-value transfer-ownership="full">
				<type name="utf8" c:type="gchar*"/>
			</return-value>
		</method>
		<method name="to_float" c:identifier="rygel_play_speed_to_float">
			<return-value transfer-ownership="full">
				<type name="gfloat" c:type="gfloat"/>
			</return-value>
		</method>
		<method name="to_double" c:identifier="rygel_play_speed_to_double">
			<return-value transfer-ownership="full">
				<type name="gdouble" c:type="gdouble"/>
			</return-value>
		</method>
	</record>
	<class name="PlaySpeedRequest" c:type="RygelPlaySpeedRequest" glib:type-name="RygelPlaySpeedRequest" glib:get-type="rygel_play_speed_request_get_type" glib:type-struct="PlaySpeedRequestClass" parent="GObject.Object">
		<field name="parent_instance">
			<type name="GObject.Object" c:type="GObject"/>
		</field>
		<field name="priv">
			<type name="PlaySpeedRequestPrivate" c:type="RygelPlaySpeedRequestPrivate*"/>
		</field>
		<constant name="PLAYSPEED_HEADER" c:identifier="RYGEL_PLAY_SPEED_REQUEST_PLAYSPEED_HEADER" value="PlaySpeed.dlna.org">
			<type name="utf8" c:type="const gchar*"/>
		</constant>
		<function name="supported" c:identifier="rygel_play_speed_request_supported">
			<return-value transfer-ownership="full">
				<type name="gboolean" c:type="gboolean"/>
			</return-value>
			<parameters>
				<parameter name="request" transfer-ownership="none">
					<type name="RygelServer.HTTPGet" c:type="RygelHTTPGet*"/>
				</parameter>
			</parameters>
		</function>
		<constructor name="new" c:identifier="rygel_play_speed_request_new">
			<return-value transfer-ownership="full">
				<type name="RygelServer.PlaySpeedRequest" c:type="RygelPlaySpeedRequest*"/>
			</return-value>
			<parameters>
				<parameter name="numerator" transfer-ownership="none">
					<type name="gint" c:type="gint"/>
				</parameter>
				<parameter name="denominator" transfer-ownership="none">
					<type name="guint" c:type="guint"/>
				</parameter>
			</parameters>
		</constructor>
		<constructor name="from_string" c:identifier="rygel_play_speed_request_new_from_string" throws="1">
			<return-value transfer-ownership="full">
				<type name="RygelServer.PlaySpeedRequest" c:type="RygelPlaySpeedRequest*"/>
			</return-value>
			<parameters>
				<parameter name="speed" transfer-ownership="none">
					<type name="utf8" c:type="const gchar*"/>
				</parameter>
			</parameters>
		</constructor>
		<method name="equals" c:identifier="rygel_play_speed_request_equals">
			<return-value transfer-ownership="full">
				<type name="gboolean" c:type="gboolean"/>
			</return-value>
			<parameters>
				<parameter name="that" transfer-ownership="none">
					<type name="RygelServer.PlaySpeedRequest" c:type="RygelPlaySpeedRequest*"/>
				</parameter>
			</parameters>
		</method>
		<property name="speed" writable="1">
			<type name="RygelServer.PlaySpeed" c:type="RygelPlaySpeed*"/>
		</property>
		<method name="get_speed" c:identifier="rygel_play_speed_request_get_speed">
			<return-value transfer-ownership="none">
				<type name="RygelServer.PlaySpeed" c:type="RygelPlaySpeed*"/>
			</return-value>
		</method>
	</class>
	<record name="PlaySpeedRequestClass" c:type="RygelPlaySpeedRequestClass" glib:is-gtype-struct-for="PlaySpeedRequest">
		<field name="parent_class">
			<type name="GObject.ObjectClass" c:type="GObjectClass"/>
		</field>
	</record>
	<record name="PlaySpeedRequestPrivate" c:type="RygelPlaySpeedRequestPrivate" disguised="1"/>
	<class name="PlaySpeedResponse" c:type="RygelPlaySpeedResponse" glib:type-name="RygelPlaySpeedResponse" glib:get-type="rygel_play_speed_response_get_type" glib:type-struct="PlaySpeedResponseClass" parent="RygelServer.HTTPResponseElement">
		<field name="parent_instance">
			<type name="RygelServer.HTTPResponseElement" c:type="RygelHTTPResponseElement"/>
		</field>
		<field name="priv">
			<type name="PlaySpeedResponsePrivate" c:type="RygelPlaySpeedResponsePrivate*"/>
		</field>
		<field name="framerate">
			<type name="gint" c:type="gint"/>
		</field>
		<constant name="FRAMERATE_HEADER" c:identifier="RYGEL_PLAY_SPEED_RESPONSE_FRAMERATE_HEADER" value="FrameRateInTrickMode.dlna.org">
			<type name="utf8" c:type="const gchar*"/>
		</constant>
		<constant name="NO_FRAMERATE" c:identifier="RYGEL_PLAY_SPEED_RESPONSE_NO_FRAMERATE" value="-1">
			<type name="gint" c:type="gint"/>
		</constant>
		<constructor name="new" c:identifier="rygel_play_speed_response_new">
			<return-value transfer-ownership="full">
				<type name="RygelServer.PlaySpeedResponse" c:type="RygelPlaySpeedResponse*"/>
			</return-value>
			<parameters>
				<parameter name="numerator" transfer-ownership="none">
					<type name="gint" c:type="gint"/>
				</parameter>
				<parameter name="denominator" transfer-ownership="none">
					<type name="guint" c:type="guint"/>
				</parameter>
				<parameter name="framerate" transfer-ownership="none">
					<type name="gint" c:type="gint"/>
				</parameter>
			</parameters>
		</constructor>
		<constructor name="from_speed" c:identifier="rygel_play_speed_response_new_from_speed" throws="1">
			<return-value transfer-ownership="full">
				<type name="RygelServer.PlaySpeedResponse" c:type="RygelPlaySpeedResponse*"/>
			</return-value>
			<parameters>
				<parameter name="speed" transfer-ownership="none">
					<type name="RygelServer.PlaySpeed" c:type="RygelPlaySpeed*"/>
				</parameter>
				<parameter name="framerate" transfer-ownership="none">
					<type name="gint" c:type="gint"/>
				</parameter>
			</parameters>
		</constructor>
		<constructor name="from_string" c:identifier="rygel_play_speed_response_new_from_string" throws="1">
			<return-value transfer-ownership="full">
				<type name="RygelServer.PlaySpeedResponse" c:type="RygelPlaySpeedResponse*"/>
			</return-value>
			<parameters>
				<parameter name="speed" transfer-ownership="none">
					<type name="utf8" c:type="const gchar*"/>
				</parameter>
				<parameter name="framerate" transfer-ownership="none">
					<type name="gint" c:type="gint"/>
				</parameter>
			</parameters>
		</constructor>
		<method name="equals" c:identifier="rygel_play_speed_response_equals">
			<return-value transfer-ownership="full">
				<type name="gboolean" c:type="gboolean"/>
			</return-value>
			<parameters>
				<parameter name="that" transfer-ownership="none">
					<type name="RygelServer.PlaySpeedRequest" c:type="RygelPlaySpeedRequest*"/>
				</parameter>
			</parameters>
		</method>
	</class>
	<record name="PlaySpeedResponseClass" c:type="RygelPlaySpeedResponseClass" glib:is-gtype-struct-for="PlaySpeedResponse">
		<field name="parent_class">
			<type name="RygelServer.HTTPResponseElementClass" c:type="RygelHTTPResponseElementClass"/>
		</field>
	</record>
	<record name="PlaySpeedResponsePrivate" c:type="RygelPlaySpeedResponsePrivate" disguised="1"/>
	<class name="DTCPCleartextRequest" c:type="RygelDTCPCleartextRequest" glib:type-name="RygelDTCPCleartextRequest" glib:get-type="rygel_dtcp_cleartext_request_get_type" glib:type-struct="DTCPCleartextRequestClass" parent="RygelServer.HTTPSeekRequest">
		<field name="parent_instance">
			<type name="RygelServer.HTTPSeekRequest" c:type="RygelHTTPSeekRequest"/>
		</field>
		<field name="priv">
			<type name="DTCPCleartextRequestPrivate" c:type="RygelDTCPCleartextRequestPrivate*"/>
		</field>
		<constant name="DTCP_RANGE_HEADER" c:identifier="RYGEL_DTCP_CLEARTEXT_REQUEST_DTCP_RANGE_HEADER" value="Range.dtcp.com">
			<type name="utf8" c:type="const gchar*"/>
		</constant>
		<constructor name="new" c:identifier="rygel_dtcp_cleartext_request_new" throws="1">
			<return-value transfer-ownership="full">
				<type name="RygelServer.DTCPCleartextRequest" c:type="RygelDTCPCleartextRequest*"/>
			</return-value>
			<parameters>
				<parameter name="message" transfer-ownership="none">
					<type name="Soup.Message" c:type="SoupMessage*"/>
				</parameter>
				<parameter name="handler" transfer-ownership="none">
					<type name="RygelServer.HTTPGetHandler" c:type="RygelHTTPGetHandler*"/>
				</parameter>
			</parameters>
		</constructor>
		<function name="supported" c:identifier="rygel_dtcp_cleartext_request_supported">
			<return-value transfer-ownership="full">
				<type name="gboolean" c:type="gboolean"/>
			</return-value>
			<parameters>
				<parameter name="message" transfer-ownership="none">
					<type name="Soup.Message" c:type="SoupMessage*"/>
				</parameter>
				<parameter name="handler" transfer-ownership="none">
					<type name="RygelServer.HTTPGetHandler" c:type="RygelHTTPGetHandler*"/>
				</parameter>
			</parameters>
		</function>
		<function name="requested" c:identifier="rygel_dtcp_cleartext_request_requested">
			<return-value transfer-ownership="full">
				<type name="gboolean" c:type="gboolean"/>
			</return-value>
			<parameters>
				<parameter name="message" transfer-ownership="none">
					<type name="Soup.Message" c:type="SoupMessage*"/>
				</parameter>
			</parameters>
		</function>
		<property name="start-byte" writable="1">
			<type name="gint64" c:type="gint64"/>
		</property>
		<method name="get_start_byte" c:identifier="rygel_dtcp_cleartext_request_get_start_byte">
			<return-value transfer-ownership="none">
				<type name="gint64" c:type="gint64"/>
			</return-value>
		</method>
		<property name="end-byte" writable="1">
			<type name="gint64" c:type="gint64"/>
		</property>
		<method name="get_end_byte" c:identifier="rygel_dtcp_cleartext_request_get_end_byte">
			<return-value transfer-ownership="none">
				<type name="gint64" c:type="gint64"/>
			</return-value>
		</method>
		<property name="range-length" writable="1">
			<type name="gint64" c:type="gint64"/>
		</property>
		<method name="get_range_length" c:identifier="rygel_dtcp_cleartext_request_get_range_length">
			<return-value transfer-ownership="none">
				<type name="gint64" c:type="gint64"/>
			</return-value>
		</method>
		<property name="total-size" writable="1">
			<type name="gint64" c:type="gint64"/>
		</property>
		<method name="get_total_size" c:identifier="rygel_dtcp_cleartext_request_get_total_size">
			<return-value transfer-ownership="none">
				<type name="gint64" c:type="gint64"/>
			</return-value>
		</method>
	</class>
	<record name="DTCPCleartextRequestClass" c:type="RygelDTCPCleartextRequestClass" glib:is-gtype-struct-for="DTCPCleartextRequest">
		<field name="parent_class">
			<type name="RygelServer.HTTPSeekRequestClass" c:type="RygelHTTPSeekRequestClass"/>
		</field>
	</record>
	<record name="DTCPCleartextRequestPrivate" c:type="RygelDTCPCleartextRequestPrivate" disguised="1"/>
	<class name="DTCPCleartextResponse" c:type="RygelDTCPCleartextResponse" glib:type-name="RygelDTCPCleartextResponse" glib:get-type="rygel_dtcp_cleartext_response_get_type" glib:type-struct="DTCPCleartextResponseClass" parent="RygelServer.HTTPResponseElement">
		<field name="parent_instance">
			<type name="RygelServer.HTTPResponseElement" c:type="RygelHTTPResponseElement"/>
		</field>
		<field name="priv">
			<type name="DTCPCleartextResponsePrivate" c:type="RygelDTCPCleartextResponsePrivate*"/>
		</field>
		<constant name="DTCP_CONTENT_RANGE_HEADER" c:identifier="RYGEL_DTCP_CLEARTEXT_RESPONSE_DTCP_CONTENT_RANGE_HEADER" value="Content-Range.dtcp.com">
			<type name="utf8" c:type="const gchar*"/>
		</constant>
		<constructor name="new" c:identifier="rygel_dtcp_cleartext_response_new">
			<return-value transfer-ownership="full">
				<type name="RygelServer.DTCPCleartextResponse" c:type="RygelDTCPCleartextResponse*"/>
			</return-value>
			<parameters>
				<parameter name="start_byte" transfer-ownership="none">
					<type name="gint64" c:type="gint64"/>
				</parameter>
				<parameter name="end_byte" transfer-ownership="none">
					<type name="gint64" c:type="gint64"/>
				</parameter>
				<parameter name="total_size" transfer-ownership="none">
					<type name="gint64" c:type="gint64"/>
				</parameter>
				<parameter name="encrypted_length" transfer-ownership="none">
					<type name="gint64" c:type="gint64"/>
				</parameter>
			</parameters>
		</constructor>
		<constructor name="from_request" c:identifier="rygel_dtcp_cleartext_response_new_from_request">
			<return-value transfer-ownership="full">
				<type name="RygelServer.DTCPCleartextResponse" c:type="RygelDTCPCleartextResponse*"/>
			</return-value>
			<parameters>
				<parameter name="request" transfer-ownership="none">
					<type name="RygelServer.DTCPCleartextRequest" c:type="RygelDTCPCleartextRequest*"/>
				</parameter>
				<parameter name="encrypted_length" transfer-ownership="none">
					<type name="gint64" c:type="gint64"/>
				</parameter>
			</parameters>
		</constructor>
		<property name="start-byte" writable="1">
			<type name="gint64" c:type="gint64"/>
		</property>
		<method name="get_start_byte" c:identifier="rygel_dtcp_cleartext_response_get_start_byte">
			<return-value transfer-ownership="none">
				<type name="gint64" c:type="gint64"/>
			</return-value>
		</method>
		<property name="end-byte" writable="1">
			<type name="gint64" c:type="gint64"/>
		</property>
		<method name="get_end_byte" c:identifier="rygel_dtcp_cleartext_response_get_end_byte">
			<return-value transfer-ownership="none">
				<type name="gint64" c:type="gint64"/>
			</return-value>
		</method>
		<property name="range-length" writable="1">
			<type name="gint64" c:type="gint64"/>
		</property>
		<method name="get_range_length" c:identifier="rygel_dtcp_cleartext_response_get_range_length">
			<return-value transfer-ownership="none">
				<type name="gint64" c:type="gint64"/>
			</return-value>
		</method>
		<property name="total-size" writable="1">
			<type name="gint64" c:type="gint64"/>
		</property>
		<method name="get_total_size" c:identifier="rygel_dtcp_cleartext_response_get_total_size">
			<return-value transfer-ownership="none">
				<type name="gint64" c:type="gint64"/>
			</return-value>
		</method>
		<property name="encrypted-length" writable="1">
			<type name="gint64" c:type="gint64"/>
		</property>
		<method name="get_encrypted_length" c:identifier="rygel_dtcp_cleartext_response_get_encrypted_length">
			<return-value transfer-ownership="none">
				<type name="gint64" c:type="gint64"/>
			</return-value>
		</method>
		<method name="set_encrypted_length" c:identifier="rygel_dtcp_cleartext_response_set_encrypted_length">
			<return-value transfer-ownership="none">
				<type name="none"/>
			</return-value>
			<parameters>
				<parameter name="value" transfer-ownership="none">
					<type name="gint64" c:type="gint64"/>
				</parameter>
			</parameters>
		</method>
	</class>
	<record name="DTCPCleartextResponseClass" c:type="RygelDTCPCleartextResponseClass" glib:is-gtype-struct-for="DTCPCleartextResponse">
		<field name="parent_class">
			<type name="RygelServer.HTTPResponseElementClass" c:type="RygelHTTPResponseElementClass"/>
		</field>
	</record>
	<record name="DTCPCleartextResponsePrivate" c:type="RygelDTCPCleartextResponsePrivate" disguised="1"/>
	<class name="DLNAAvailableSeekRangeRequest" c:type="RygelDLNAAvailableSeekRangeRequest" glib:type-name="RygelDLNAAvailableSeekRangeRequest" glib:get-type="rygel_dlna_available_seek_range_request_get_type" glib:type-struct="DLNAAvailableSeekRangeRequestClass" parent="RygelServer.HTTPSeekRequest">
		<field name="parent_instance">
			<type name="RygelServer.HTTPSeekRequest" c:type="RygelHTTPSeekRequest"/>
		</field>
		<field name="priv">
			<type name="DLNAAvailableSeekRangeRequestPrivate" c:type="RygelDLNAAvailableSeekRangeRequestPrivate*"/>
		</field>
		<constant name="GET_AVAILABLE_SEEK_RANGE_HEADER" c:identifier="RYGEL_DLNA_AVAILABLE_SEEK_RANGE_REQUEST_GET_AVAILABLE_SEEK_RANGE_HEADER" value="getAvailableSeekRange.dlna.org">
			<type name="utf8" c:type="const gchar*"/>
		</constant>
		<function name="supported" c:identifier="rygel_dlna_available_seek_range_request_supported">
			<return-value transfer-ownership="full">
				<type name="gboolean" c:type="gboolean"/>
			</return-value>
			<parameters>
				<parameter name="message" transfer-ownership="none">
					<type name="Soup.Message" c:type="SoupMessage*"/>
				</parameter>
				<parameter name="handler" transfer-ownership="none">
					<type name="RygelServer.HTTPGetHandler" c:type="RygelHTTPGetHandler*"/>
				</parameter>
			</parameters>
		</function>
		<function name="requested" c:identifier="rygel_dlna_available_seek_range_request_requested">
			<return-value transfer-ownership="full">
				<type name="gboolean" c:type="gboolean"/>
			</return-value>
			<parameters>
				<parameter name="message" transfer-ownership="none">
					<type name="Soup.Message" c:type="SoupMessage*"/>
				</parameter>
			</parameters>
		</function>
	</class>
	<record name="DLNAAvailableSeekRangeRequestClass" c:type="RygelDLNAAvailableSeekRangeRequestClass" glib:is-gtype-struct-for="DLNAAvailableSeekRangeRequest">
		<field name="parent_class">
			<type name="RygelServer.HTTPSeekRequestClass" c:type="RygelHTTPSeekRequestClass"/>
		</field>
	</record>
	<record name="DLNAAvailableSeekRangeRequestPrivate" c:type="RygelDLNAAvailableSeekRangeRequestPrivate" disguised="1"/>
	<class name="DLNAAvailableSeekRangeResponse" c:type="RygelDLNAAvailableSeekRangeResponse" glib:type-name="RygelDLNAAvailableSeekRangeResponse" glib:get-type="rygel_dlna_available_seek_range_response_get_type" glib:type-struct="DLNAAvailableSeekRangeResponseClass" parent="RygelServer.HTTPResponseElement">
		<field name="parent_instance">
			<type name="RygelServer.HTTPResponseElement" c:type="RygelHTTPResponseElement"/>
		</field>
		<field name="priv">
			<type name="DLNAAvailableSeekRangeResponsePrivate" c:type="RygelDLNAAvailableSeekRangeResponsePrivate*"/>
		</field>
		<constant name="AVAILABLE_SEEK_RANGE_HEADER" c:identifier="RYGEL_DLNA_AVAILABLE_SEEK_RANGE_RESPONSE_AVAILABLE_SEEK_RANGE_HEADER" value="availableSeekRange.dlna.org">
			<type name="utf8" c:type="const gchar*"/>
		</constant>
		<constructor name="new" c:identifier="rygel_dlna_available_seek_range_response_new">
			<return-value transfer-ownership="full">
				<type name="RygelServer.DLNAAvailableSeekRangeResponse" c:type="RygelDLNAAvailableSeekRangeResponse*"/>
			</return-value>
			<parameters>
				<parameter name="mode" transfer-ownership="none">
					<type name="gint" c:type="gint"/>
				</parameter>
				<parameter name="start_time" transfer-ownership="none">
					<type name="gint64" c:type="gint64"/>
				</parameter>
				<parameter name="end_time" transfer-ownership="none">
					<type name="gint64" c:type="gint64"/>
				</parameter>
				<parameter name="start_byte" transfer-ownership="none">
					<type name="gint64" c:type="gint64"/>
				</parameter>
				<parameter name="end_byte" transfer-ownership="none">
					<type name="gint64" c:type="gint64"/>
				</parameter>
			</parameters>
		</constructor>
		<constructor name="time_only" c:identifier="rygel_dlna_available_seek_range_response_new_time_only">
			<return-value transfer-ownership="full">
				<type name="RygelServer.DLNAAvailableSeekRangeResponse" c:type="RygelDLNAAvailableSeekRangeResponse*"/>
			</return-value>
			<parameters>
				<parameter name="mode" transfer-ownership="none">
					<type name="gint" c:type="gint"/>
				</parameter>
				<parameter name="start_time" transfer-ownership="none">
					<type name="gint64" c:type="gint64"/>
				</parameter>
				<parameter name="end_time" transfer-ownership="none">
					<type name="gint64" c:type="gint64"/>
				</parameter>
			</parameters>
		</constructor>
		<property name="mode" writable="1">
			<type name="gint" c:type="gint"/>
		</property>
		<method name="get_mode" c:identifier="rygel_dlna_available_seek_range_response_get_mode">
			<return-value transfer-ownership="none">
				<type name="gint" c:type="gint"/>
			</return-value>
		</method>
		<property name="start-time" writable="1">
			<type name="gint64" c:type="gint64"/>
		</property>
		<method name="get_start_time" c:identifier="rygel_dlna_available_seek_range_response_get_start_time">
			<return-value transfer-ownership="none">
				<type name="gint64" c:type="gint64"/>
			</return-value>
		</method>
		<property name="end-time" writable="1">
			<type name="gint64" c:type="gint64"/>
		</property>
		<method name="get_end_time" c:identifier="rygel_dlna_available_seek_range_response_get_end_time">
			<return-value transfer-ownership="none">
				<type name="gint64" c:type="gint64"/>
			</return-value>
		</method>
		<property name="start-byte" writable="1">
			<type name="gint64" c:type="gint64"/>
		</property>
		<method name="get_start_byte" c:identifier="rygel_dlna_available_seek_range_response_get_start_byte">
			<return-value transfer-ownership="none">
				<type name="gint64" c:type="gint64"/>
			</return-value>
		</method>
		<property name="end-byte" writable="1">
			<type name="gint64" c:type="gint64"/>
		</property>
		<method name="get_end_byte" c:identifier="rygel_dlna_available_seek_range_response_get_end_byte">
			<return-value transfer-ownership="none">
				<type name="gint64" c:type="gint64"/>
			</return-value>
		</method>
		<property name="range-length" writable="1">
			<type name="gint64" c:type="gint64"/>
		</property>
		<method name="get_range_length" c:identifier="rygel_dlna_available_seek_range_response_get_range_length">
			<return-value transfer-ownership="none">
				<type name="gint64" c:type="gint64"/>
			</return-value>
		</method>
	</class>
	<record name="DLNAAvailableSeekRangeResponseClass" c:type="RygelDLNAAvailableSeekRangeResponseClass" glib:is-gtype-struct-for="DLNAAvailableSeekRangeResponse">
		<field name="parent_class">
			<type name="RygelServer.HTTPResponseElementClass" c:type="RygelHTTPResponseElementClass"/>
		</field>
	</record>
	<record name="DLNAAvailableSeekRangeResponsePrivate" c:type="RygelDLNAAvailableSeekRangeResponsePrivate" disguised="1"/>
	<interface name="SearchableContainer" c:type="RygelSearchableContainer" glib:type-name="RygelSearchableContainer" glib:get-type="rygel_searchable_container_get_type" glib:type-struct="SearchableContainerIface">
		<prerequisite name="RygelServer.MediaContainer"/>
		<method name="search" c:identifier="rygel_searchable_container_search">
			<return-value transfer-ownership="none">
				<type name="none"/>
			</return-value>
			<parameters>
				<parameter name="expression" transfer-ownership="none" allow-none="1">
					<type name="RygelServer.SearchExpression" c:type="RygelSearchExpression*"/>
				</parameter>
				<parameter name="offset" transfer-ownership="none">
					<type name="guint" c:type="guint"/>
				</parameter>
				<parameter name="max_count" transfer-ownership="none">
					<type name="guint" c:type="guint"/>
				</parameter>
				<parameter name="sort_criteria" transfer-ownership="none">
					<type name="utf8" c:type="const gchar*"/>
				</parameter>
				<parameter name="cancellable" transfer-ownership="none" allow-none="1">
					<type name="Gio.Cancellable" c:type="GCancellable*"/>
				</parameter>
				<parameter name="_callback_" transfer-ownership="none" allow-none="1" closure="6" scope="async">
					<type name="Gio.AsyncReadyCallback" c:type="GAsyncReadyCallback"/>
				</parameter>
				<parameter name="_callback__target" transfer-ownership="none" allow-none="1">
					<type name="gpointer" c:type="void*"/>
				</parameter>
			</parameters>
		</method>
		<method name="search_finish" c:identifier="rygel_searchable_container_search_finish" throws="1">
			<return-value transfer-ownership="full" allow-none="1">
				<type name="RygelServer.MediaObjects" c:type="RygelMediaObjects*"/>
			</return-value>
			<parameters>
				<parameter name="_res_" transfer-ownership="none">
					<type name="Gio.AsyncResult" c:type="GAsyncResult*"/>
				</parameter>
				<parameter name="total_matches" direction="out" transfer-ownership="full">
					<type name="guint" c:type="guint*"/>
				</parameter>
			</parameters>
		</method>
		<virtual-method name="search" invoker="search">
			<return-value transfer-ownership="none">
				<type name="none"/>
			</return-value>
			<parameters>
				<parameter name="expression" transfer-ownership="none" allow-none="1">
					<type name="RygelServer.SearchExpression" c:type="RygelSearchExpression*"/>
				</parameter>
				<parameter name="offset" transfer-ownership="none">
					<type name="guint" c:type="guint"/>
				</parameter>
				<parameter name="max_count" transfer-ownership="none">
					<type name="guint" c:type="guint"/>
				</parameter>
				<parameter name="sort_criteria" transfer-ownership="none">
					<type name="utf8" c:type="const gchar*"/>
				</parameter>
				<parameter name="cancellable" transfer-ownership="none" allow-none="1">
					<type name="Gio.Cancellable" c:type="GCancellable*"/>
				</parameter>
				<parameter name="_callback_" transfer-ownership="none" allow-none="1" closure="6" scope="async">
					<type name="Gio.AsyncReadyCallback" c:type="GAsyncReadyCallback"/>
				</parameter>
				<parameter name="_callback__target" transfer-ownership="none" allow-none="1">
					<type name="gpointer" c:type="void*"/>
				</parameter>
			</parameters>
		</virtual-method>
		<virtual-method name="search_finish" invoker="search_finish" throws="1">
			<return-value transfer-ownership="full" allow-none="1">
				<type name="RygelServer.MediaObjects" c:type="RygelMediaObjects*"/>
			</return-value>
			<parameters>
				<parameter name="_res_" transfer-ownership="none">
					<type name="Gio.AsyncResult" c:type="GAsyncResult*"/>
				</parameter>
				<parameter name="total_matches" direction="out" transfer-ownership="full">
					<type name="guint" c:type="guint*"/>
				</parameter>
			</parameters>
		</virtual-method>
		<method name="simple_search" c:identifier="rygel_searchable_container_simple_search">
			<return-value transfer-ownership="none">
				<type name="none"/>
			</return-value>
			<parameters>
				<parameter name="expression" transfer-ownership="none" allow-none="1">
					<type name="RygelServer.SearchExpression" c:type="RygelSearchExpression*"/>
				</parameter>
				<parameter name="offset" transfer-ownership="none">
					<type name="guint" c:type="guint"/>
				</parameter>
				<parameter name="max_count" transfer-ownership="none">
					<type name="guint" c:type="guint"/>
				</parameter>
				<parameter name="sort_criteria" transfer-ownership="none">
					<type name="utf8" c:type="const gchar*"/>
				</parameter>
				<parameter name="cancellable" transfer-ownership="none" allow-none="1">
					<type name="Gio.Cancellable" c:type="GCancellable*"/>
				</parameter>
				<parameter name="_callback_" transfer-ownership="none" allow-none="1" closure="6" scope="async">
					<type name="Gio.AsyncReadyCallback" c:type="GAsyncReadyCallback"/>
				</parameter>
				<parameter name="_callback__target" transfer-ownership="none" allow-none="1">
					<type name="gpointer" c:type="void*"/>
				</parameter>
			</parameters>
		</method>
		<method name="simple_search_finish" c:identifier="rygel_searchable_container_simple_search_finish" throws="1">
			<return-value transfer-ownership="full" allow-none="1">
				<type name="RygelServer.MediaObjects" c:type="RygelMediaObjects*"/>
			</return-value>
			<parameters>
				<parameter name="_res_" transfer-ownership="none">
					<type name="Gio.AsyncResult" c:type="GAsyncResult*"/>
				</parameter>
				<parameter name="total_matches" direction="out" transfer-ownership="full">
					<type name="guint" c:type="guint*"/>
				</parameter>
			</parameters>
		</method>
		<method name="find_object" c:identifier="rygel_searchable_container_find_object">
			<return-value transfer-ownership="none">
				<type name="none"/>
			</return-value>
			<parameters>
				<parameter name="id" transfer-ownership="none">
					<type name="utf8" c:type="const gchar*"/>
				</parameter>
				<parameter name="cancellable" transfer-ownership="none" allow-none="1">
					<type name="Gio.Cancellable" c:type="GCancellable*"/>
				</parameter>
				<parameter name="_callback_" transfer-ownership="none" allow-none="1" closure="3" scope="async">
					<type name="Gio.AsyncReadyCallback" c:type="GAsyncReadyCallback"/>
				</parameter>
				<parameter name="_callback__target" transfer-ownership="none" allow-none="1">
					<type name="gpointer" c:type="void*"/>
				</parameter>
			</parameters>
		</method>
		<method name="find_object_finish" c:identifier="rygel_searchable_container_find_object_finish" throws="1">
			<return-value transfer-ownership="full" allow-none="1">
				<type name="RygelServer.MediaObject" c:type="RygelMediaObject*"/>
			</return-value>
			<parameters>
				<parameter name="_res_" transfer-ownership="none">
					<type name="Gio.AsyncResult" c:type="GAsyncResult*"/>
				</parameter>
			</parameters>
		</method>
		<property name="search-classes" writable="1">
			<type name="Gee.ArrayList" c:type="GeeArrayList*">
				<type name="utf8" c:type="gchar*"/>
			</type>
		</property>
		<method name="get_search_classes" c:identifier="rygel_searchable_container_get_search_classes">
			<return-value transfer-ownership="none">
				<type name="Gee.ArrayList" c:type="GeeArrayList*">
					<type name="utf8" c:type="gchar*"/>
				</type>
			</return-value>
		</method>
		<virtual-method name="get_search_classes" invoker="get_search_classes">
			<return-value transfer-ownership="none">
				<type name="Gee.ArrayList" c:type="GeeArrayList*">
					<type name="utf8" c:type="gchar*"/>
				</type>
			</return-value>
		</virtual-method>
		<method name="set_search_classes" c:identifier="rygel_searchable_container_set_search_classes">
			<return-value transfer-ownership="none">
				<type name="none"/>
			</return-value>
			<parameters>
				<parameter name="value" transfer-ownership="none">
					<type name="Gee.ArrayList" c:type="GeeArrayList*">
						<type name="utf8" c:type="gchar*"/>
					</type>
				</parameter>
			</parameters>
		</method>
		<virtual-method name="set_search_classes" invoker="set_search_classes">
			<return-value transfer-ownership="none">
				<type name="none"/>
			</return-value>
			<parameters>
				<parameter name="value" transfer-ownership="none">
					<type name="Gee.ArrayList" c:type="GeeArrayList*">
						<type name="utf8" c:type="gchar*"/>
					</type>
				</parameter>
			</parameters>
		</virtual-method>
	</interface>
	<record name="SearchableContainerIface" c:type="RygelSearchableContainerIface" glib:is-gtype-struct-for="SearchableContainer">
		<field name="parent_iface">
			<type name="GObject.TypeInterface" c:type="GTypeInterface"/>
		</field>
		<field name="search">
			<callback name="search" c:type="search">
				<return-value transfer-ownership="none">
					<type name="none"/>
				</return-value>
				<parameters>
					<parameter name="self" transfer-ownership="none">
						<type name="RygelServer.SearchableContainer" c:type="RygelSearchableContainer*"/>
					</parameter>
					<parameter name="expression" transfer-ownership="none" allow-none="1">
						<type name="RygelServer.SearchExpression" c:type="RygelSearchExpression*"/>
					</parameter>
					<parameter name="offset" transfer-ownership="none">
						<type name="guint" c:type="guint"/>
					</parameter>
					<parameter name="max_count" transfer-ownership="none">
						<type name="guint" c:type="guint"/>
					</parameter>
					<parameter name="sort_criteria" transfer-ownership="none">
						<type name="utf8" c:type="const gchar*"/>
					</parameter>
					<parameter name="cancellable" transfer-ownership="none" allow-none="1">
						<type name="Gio.Cancellable" c:type="GCancellable*"/>
					</parameter>
					<parameter name="_callback_" transfer-ownership="none" allow-none="1" closure="7" scope="async">
						<type name="Gio.AsyncReadyCallback" c:type="GAsyncReadyCallback"/>
					</parameter>
					<parameter name="_callback__target" transfer-ownership="none" allow-none="1">
						<type name="gpointer" c:type="void*"/>
					</parameter>
				</parameters>
			</callback>
		</field>
		<field name="search_finish">
			<callback name="search_finish" c:type="search_finish" throws="1">
				<return-value transfer-ownership="full" allow-none="1">
					<type name="RygelServer.MediaObjects" c:type="RygelMediaObjects*"/>
				</return-value>
				<parameters>
					<parameter name="self" transfer-ownership="none">
						<type name="RygelServer.SearchableContainer" c:type="RygelSearchableContainer*"/>
					</parameter>
					<parameter name="_res_" transfer-ownership="none">
						<type name="Gio.AsyncResult" c:type="GAsyncResult*"/>
					</parameter>
					<parameter name="total_matches" direction="out" transfer-ownership="full">
						<type name="guint" c:type="guint*"/>
					</parameter>
				</parameters>
			</callback>
		</field>
		<field name="get_search_classes">
			<callback name="get_search_classes" c:type="get_search_classes">
				<return-value transfer-ownership="none">
					<type name="Gee.ArrayList" c:type="GeeArrayList*">
						<type name="utf8" c:type="gchar*"/>
					</type>
				</return-value>
				<parameters>
					<parameter name="self" transfer-ownership="none">
						<type name="RygelServer.SearchableContainer" c:type="RygelSearchableContainer*"/>
					</parameter>
				</parameters>
			</callback>
		</field>
		<field name="set_search_classes">
			<callback name="set_search_classes" c:type="set_search_classes">
				<return-value transfer-ownership="none">
					<type name="none"/>
				</return-value>
				<parameters>
					<parameter name="self" transfer-ownership="none">
						<type name="RygelServer.SearchableContainer" c:type="RygelSearchableContainer*"/>
					</parameter>
					<parameter name="value" transfer-ownership="none">
						<type name="Gee.ArrayList" c:type="GeeArrayList*">
							<type name="utf8" c:type="gchar*"/>
						</type>
					</parameter>
				</parameters>
			</callback>
		</field>
	</record>
	<interface name="TrackableContainer" c:type="RygelTrackableContainer" glib:type-name="RygelTrackableContainer" glib:get-type="rygel_trackable_container_get_type" glib:type-struct="TrackableContainerIface">
		<prerequisite name="RygelServer.MediaContainer"/>
		<method name="clear" c:identifier="rygel_trackable_container_clear">
			<return-value transfer-ownership="none">
				<type name="none"/>
			</return-value>
			<parameters>
				<parameter name="_callback_" transfer-ownership="none" allow-none="1" closure="1" scope="async">
					<type name="Gio.AsyncReadyCallback" c:type="GAsyncReadyCallback"/>
				</parameter>
				<parameter name="_callback__target" transfer-ownership="none" allow-none="1">
					<type name="gpointer" c:type="void*"/>
				</parameter>
			</parameters>
		</method>
		<method name="clear_finish" c:identifier="rygel_trackable_container_clear_finish">
			<return-value transfer-ownership="full">
				<type name="none"/>
			</return-value>
			<parameters>
				<parameter name="_res_" transfer-ownership="none">
					<type name="Gio.AsyncResult" c:type="GAsyncResult*"/>
				</parameter>
			</parameters>
		</method>
		<method name="add_child" c:identifier="rygel_trackable_container_add_child">
			<return-value transfer-ownership="none">
				<type name="none"/>
			</return-value>
			<parameters>
				<parameter name="object" transfer-ownership="none">
					<type name="RygelServer.MediaObject" c:type="RygelMediaObject*"/>
				</parameter>
				<parameter name="_callback_" transfer-ownership="none" allow-none="1" closure="2" scope="async">
					<type name="Gio.AsyncReadyCallback" c:type="GAsyncReadyCallback"/>
				</parameter>
				<parameter name="_callback__target" transfer-ownership="none" allow-none="1">
					<type name="gpointer" c:type="void*"/>
				</parameter>
			</parameters>
		</method>
		<method name="add_child_finish" c:identifier="rygel_trackable_container_add_child_finish">
			<return-value transfer-ownership="full">
				<type name="none"/>
			</return-value>
			<parameters>
				<parameter name="_res_" transfer-ownership="none">
					<type name="Gio.AsyncResult" c:type="GAsyncResult*"/>
				</parameter>
			</parameters>
		</method>
		<virtual-method name="add_child" invoker="add_child">
			<return-value transfer-ownership="none">
				<type name="none"/>
			</return-value>
			<parameters>
				<parameter name="object" transfer-ownership="none">
					<type name="RygelServer.MediaObject" c:type="RygelMediaObject*"/>
				</parameter>
				<parameter name="_callback_" transfer-ownership="none" allow-none="1" closure="2" scope="async">
					<type name="Gio.AsyncReadyCallback" c:type="GAsyncReadyCallback"/>
				</parameter>
				<parameter name="_callback__target" transfer-ownership="none" allow-none="1">
					<type name="gpointer" c:type="void*"/>
				</parameter>
			</parameters>
		</virtual-method>
		<virtual-method name="add_child_finish" invoker="add_child_finish">
			<return-value transfer-ownership="full">
				<type name="none"/>
			</return-value>
			<parameters>
				<parameter name="_res_" transfer-ownership="none">
					<type name="Gio.AsyncResult" c:type="GAsyncResult*"/>
				</parameter>
			</parameters>
		</virtual-method>
		<method name="add_child_tracked" c:identifier="rygel_trackable_container_add_child_tracked">
			<return-value transfer-ownership="none">
				<type name="none"/>
			</return-value>
			<parameters>
				<parameter name="object" transfer-ownership="none">
					<type name="RygelServer.MediaObject" c:type="RygelMediaObject*"/>
				</parameter>
				<parameter name="_callback_" transfer-ownership="none" allow-none="1" closure="2" scope="async">
					<type name="Gio.AsyncReadyCallback" c:type="GAsyncReadyCallback"/>
				</parameter>
				<parameter name="_callback__target" transfer-ownership="none" allow-none="1">
					<type name="gpointer" c:type="void*"/>
				</parameter>
			</parameters>
		</method>
		<method name="add_child_tracked_finish" c:identifier="rygel_trackable_container_add_child_tracked_finish">
			<return-value transfer-ownership="full">
				<type name="none"/>
			</return-value>
			<parameters>
				<parameter name="_res_" transfer-ownership="none">
					<type name="Gio.AsyncResult" c:type="GAsyncResult*"/>
				</parameter>
			</parameters>
		</method>
		<method name="remove_child" c:identifier="rygel_trackable_container_remove_child">
			<return-value transfer-ownership="none">
				<type name="none"/>
			</return-value>
			<parameters>
				<parameter name="object" transfer-ownership="none">
					<type name="RygelServer.MediaObject" c:type="RygelMediaObject*"/>
				</parameter>
				<parameter name="_callback_" transfer-ownership="none" allow-none="1" closure="2" scope="async">
					<type name="Gio.AsyncReadyCallback" c:type="GAsyncReadyCallback"/>
				</parameter>
				<parameter name="_callback__target" transfer-ownership="none" allow-none="1">
					<type name="gpointer" c:type="void*"/>
				</parameter>
			</parameters>
		</method>
		<method name="remove_child_finish" c:identifier="rygel_trackable_container_remove_child_finish">
			<return-value transfer-ownership="full">
				<type name="none"/>
			</return-value>
			<parameters>
				<parameter name="_res_" transfer-ownership="none">
					<type name="Gio.AsyncResult" c:type="GAsyncResult*"/>
				</parameter>
			</parameters>
		</method>
		<virtual-method name="remove_child" invoker="remove_child">
			<return-value transfer-ownership="none">
				<type name="none"/>
			</return-value>
			<parameters>
				<parameter name="object" transfer-ownership="none">
					<type name="RygelServer.MediaObject" c:type="RygelMediaObject*"/>
				</parameter>
				<parameter name="_callback_" transfer-ownership="none" allow-none="1" closure="2" scope="async">
					<type name="Gio.AsyncReadyCallback" c:type="GAsyncReadyCallback"/>
				</parameter>
				<parameter name="_callback__target" transfer-ownership="none" allow-none="1">
					<type name="gpointer" c:type="void*"/>
				</parameter>
			</parameters>
		</virtual-method>
		<virtual-method name="remove_child_finish" invoker="remove_child_finish">
			<return-value transfer-ownership="full">
				<type name="none"/>
			</return-value>
			<parameters>
				<parameter name="_res_" transfer-ownership="none">
					<type name="Gio.AsyncResult" c:type="GAsyncResult*"/>
				</parameter>
			</parameters>
		</virtual-method>
		<method name="remove_child_tracked" c:identifier="rygel_trackable_container_remove_child_tracked">
			<return-value transfer-ownership="none">
				<type name="none"/>
			</return-value>
			<parameters>
				<parameter name="object" transfer-ownership="none">
					<type name="RygelServer.MediaObject" c:type="RygelMediaObject*"/>
				</parameter>
				<parameter name="_callback_" transfer-ownership="none" allow-none="1" closure="2" scope="async">
					<type name="Gio.AsyncReadyCallback" c:type="GAsyncReadyCallback"/>
				</parameter>
				<parameter name="_callback__target" transfer-ownership="none" allow-none="1">
					<type name="gpointer" c:type="void*"/>
				</parameter>
			</parameters>
		</method>
		<method name="remove_child_tracked_finish" c:identifier="rygel_trackable_container_remove_child_tracked_finish">
			<return-value transfer-ownership="full">
				<type name="none"/>
			</return-value>
			<parameters>
				<parameter name="_res_" transfer-ownership="none">
					<type name="Gio.AsyncResult" c:type="GAsyncResult*"/>
				</parameter>
			</parameters>
		</method>
		<method name="get_service_reset_token" c:identifier="rygel_trackable_container_get_service_reset_token">
			<return-value transfer-ownership="full">
				<type name="utf8" c:type="gchar*"/>
			</return-value>
		</method>
		<virtual-method name="get_service_reset_token" invoker="get_service_reset_token">
			<return-value transfer-ownership="full">
				<type name="utf8" c:type="gchar*"/>
			</return-value>
		</virtual-method>
		<method name="set_service_reset_token" c:identifier="rygel_trackable_container_set_service_reset_token">
			<return-value transfer-ownership="full">
				<type name="none"/>
			</return-value>
			<parameters>
				<parameter name="token" transfer-ownership="none">
					<type name="utf8" c:type="const gchar*"/>
				</parameter>
			</parameters>
		</method>
		<virtual-method name="set_service_reset_token" invoker="set_service_reset_token">
			<return-value transfer-ownership="full">
				<type name="none"/>
			</return-value>
			<parameters>
				<parameter name="token" transfer-ownership="none">
					<type name="utf8" c:type="const gchar*"/>
				</parameter>
			</parameters>
		</virtual-method>
		<method name="get_system_update_id" c:identifier="rygel_trackable_container_get_system_update_id">
			<return-value transfer-ownership="full">
				<type name="guint32" c:type="guint32"/>
			</return-value>
		</method>
		<virtual-method name="get_system_update_id" invoker="get_system_update_id">
			<return-value transfer-ownership="full">
				<type name="guint32" c:type="guint32"/>
			</return-value>
		</virtual-method>
		<glib:signal name="child_added">
			<return-value transfer-ownership="full">
				<type name="none"/>
			</return-value>
			<parameters>
				<parameter name="object" transfer-ownership="none">
					<type name="RygelServer.MediaObject" c:type="RygelMediaObject*"/>
				</parameter>
			</parameters>
		</glib:signal>
		<glib:signal name="child_removed">
			<return-value transfer-ownership="full">
				<type name="none"/>
			</return-value>
			<parameters>
				<parameter name="object" transfer-ownership="none">
					<type name="RygelServer.MediaObject" c:type="RygelMediaObject*"/>
				</parameter>
			</parameters>
		</glib:signal>
	</interface>
	<record name="TrackableContainerIface" c:type="RygelTrackableContainerIface" glib:is-gtype-struct-for="TrackableContainer">
		<field name="parent_iface">
			<type name="GObject.TypeInterface" c:type="GTypeInterface"/>
		</field>
		<field name="add_child">
			<callback name="add_child" c:type="add_child">
				<return-value transfer-ownership="none">
					<type name="none"/>
				</return-value>
				<parameters>
					<parameter name="self" transfer-ownership="none">
						<type name="RygelServer.TrackableContainer" c:type="RygelTrackableContainer*"/>
					</parameter>
					<parameter name="object" transfer-ownership="none">
						<type name="RygelServer.MediaObject" c:type="RygelMediaObject*"/>
					</parameter>
					<parameter name="_callback_" transfer-ownership="none" allow-none="1" closure="3" scope="async">
						<type name="Gio.AsyncReadyCallback" c:type="GAsyncReadyCallback"/>
					</parameter>
					<parameter name="_callback__target" transfer-ownership="none" allow-none="1">
						<type name="gpointer" c:type="void*"/>
					</parameter>
				</parameters>
			</callback>
		</field>
		<field name="add_child_finish">
			<callback name="add_child_finish" c:type="add_child_finish">
				<return-value transfer-ownership="full">
					<type name="none"/>
				</return-value>
				<parameters>
					<parameter name="self" transfer-ownership="none">
						<type name="RygelServer.TrackableContainer" c:type="RygelTrackableContainer*"/>
					</parameter>
					<parameter name="_res_" transfer-ownership="none">
						<type name="Gio.AsyncResult" c:type="GAsyncResult*"/>
					</parameter>
				</parameters>
			</callback>
		</field>
		<field name="remove_child">
			<callback name="remove_child" c:type="remove_child">
				<return-value transfer-ownership="none">
					<type name="none"/>
				</return-value>
				<parameters>
					<parameter name="self" transfer-ownership="none">
						<type name="RygelServer.TrackableContainer" c:type="RygelTrackableContainer*"/>
					</parameter>
					<parameter name="object" transfer-ownership="none">
						<type name="RygelServer.MediaObject" c:type="RygelMediaObject*"/>
					</parameter>
					<parameter name="_callback_" transfer-ownership="none" allow-none="1" closure="3" scope="async">
						<type name="Gio.AsyncReadyCallback" c:type="GAsyncReadyCallback"/>
					</parameter>
					<parameter name="_callback__target" transfer-ownership="none" allow-none="1">
						<type name="gpointer" c:type="void*"/>
					</parameter>
				</parameters>
			</callback>
		</field>
		<field name="remove_child_finish">
			<callback name="remove_child_finish" c:type="remove_child_finish">
				<return-value transfer-ownership="full">
					<type name="none"/>
				</return-value>
				<parameters>
					<parameter name="self" transfer-ownership="none">
						<type name="RygelServer.TrackableContainer" c:type="RygelTrackableContainer*"/>
					</parameter>
					<parameter name="_res_" transfer-ownership="none">
						<type name="Gio.AsyncResult" c:type="GAsyncResult*"/>
					</parameter>
				</parameters>
			</callback>
		</field>
		<field name="get_service_reset_token">
			<callback name="get_service_reset_token" c:type="get_service_reset_token">
				<return-value transfer-ownership="full">
					<type name="utf8" c:type="gchar*"/>
				</return-value>
				<parameters>
					<parameter name="self" transfer-ownership="none">
						<type name="RygelServer.TrackableContainer" c:type="RygelTrackableContainer*"/>
					</parameter>
				</parameters>
			</callback>
		</field>
		<field name="set_service_reset_token">
			<callback name="set_service_reset_token" c:type="set_service_reset_token">
				<return-value transfer-ownership="full">
					<type name="none"/>
				</return-value>
				<parameters>
					<parameter name="self" transfer-ownership="none">
						<type name="RygelServer.TrackableContainer" c:type="RygelTrackableContainer*"/>
					</parameter>
					<parameter name="token" transfer-ownership="none">
						<type name="utf8" c:type="const gchar*"/>
					</parameter>
				</parameters>
			</callback>
		</field>
		<field name="get_system_update_id">
			<callback name="get_system_update_id" c:type="get_system_update_id">
				<return-value transfer-ownership="full">
					<type name="guint32" c:type="guint32"/>
				</return-value>
				<parameters>
					<parameter name="self" transfer-ownership="none">
						<type name="RygelServer.TrackableContainer" c:type="RygelTrackableContainer*"/>
					</parameter>
				</parameters>
			</callback>
		</field>
	</record>
	<interface name="TrackableItem" c:type="RygelTrackableItem" glib:type-name="RygelTrackableItem" glib:get-type="rygel_trackable_item_get_type" glib:type-struct="TrackableItemIface">
		<prerequisite name="RygelServer.MediaItem"/>
		<method name="changed" c:identifier="rygel_trackable_item_changed">
			<return-value transfer-ownership="full">
				<type name="none"/>
			</return-value>
		</method>
	</interface>
	<record name="TrackableItemIface" c:type="RygelTrackableItemIface" glib:is-gtype-struct-for="TrackableItem">
		<field name="parent_iface">
			<type name="GObject.TypeInterface" c:type="GTypeInterface"/>
		</field>
	</record>
	<interface name="VisualItem" c:type="RygelVisualItem" glib:type-name="RygelVisualItem" glib:get-type="rygel_visual_item_get_type" glib:type-struct="VisualItemIface">
		<prerequisite name="RygelServer.MediaFileItem"/>
		<property name="width" writable="1">
			<type name="gint" c:type="gint"/>
		</property>
		<method name="get_width" c:identifier="rygel_visual_item_get_width">
			<return-value transfer-ownership="none">
				<type name="gint" c:type="gint"/>
			</return-value>
		</method>
		<virtual-method name="get_width" invoker="get_width">
			<return-value transfer-ownership="none">
				<type name="gint" c:type="gint"/>
			</return-value>
		</virtual-method>
		<method name="set_width" c:identifier="rygel_visual_item_set_width">
			<return-value transfer-ownership="none">
				<type name="none"/>
			</return-value>
			<parameters>
				<parameter name="value" transfer-ownership="none">
					<type name="gint" c:type="gint"/>
				</parameter>
			</parameters>
		</method>
		<virtual-method name="set_width" invoker="set_width">
			<return-value transfer-ownership="none">
				<type name="none"/>
			</return-value>
			<parameters>
				<parameter name="value" transfer-ownership="none">
					<type name="gint" c:type="gint"/>
				</parameter>
			</parameters>
		</virtual-method>
		<property name="height" writable="1">
			<type name="gint" c:type="gint"/>
		</property>
		<method name="get_height" c:identifier="rygel_visual_item_get_height">
			<return-value transfer-ownership="none">
				<type name="gint" c:type="gint"/>
			</return-value>
		</method>
		<virtual-method name="get_height" invoker="get_height">
			<return-value transfer-ownership="none">
				<type name="gint" c:type="gint"/>
			</return-value>
		</virtual-method>
		<method name="set_height" c:identifier="rygel_visual_item_set_height">
			<return-value transfer-ownership="none">
				<type name="none"/>
			</return-value>
			<parameters>
				<parameter name="value" transfer-ownership="none">
					<type name="gint" c:type="gint"/>
				</parameter>
			</parameters>
		</method>
		<virtual-method name="set_height" invoker="set_height">
			<return-value transfer-ownership="none">
				<type name="none"/>
			</return-value>
			<parameters>
				<parameter name="value" transfer-ownership="none">
					<type name="gint" c:type="gint"/>
				</parameter>
			</parameters>
		</virtual-method>
		<property name="color-depth" writable="1">
			<type name="gint" c:type="gint"/>
		</property>
		<method name="get_color_depth" c:identifier="rygel_visual_item_get_color_depth">
			<return-value transfer-ownership="none">
				<type name="gint" c:type="gint"/>
			</return-value>
		</method>
		<virtual-method name="get_color_depth" invoker="get_color_depth">
			<return-value transfer-ownership="none">
				<type name="gint" c:type="gint"/>
			</return-value>
		</virtual-method>
		<method name="set_color_depth" c:identifier="rygel_visual_item_set_color_depth">
			<return-value transfer-ownership="none">
				<type name="none"/>
			</return-value>
			<parameters>
				<parameter name="value" transfer-ownership="none">
					<type name="gint" c:type="gint"/>
				</parameter>
			</parameters>
		</method>
		<virtual-method name="set_color_depth" invoker="set_color_depth">
			<return-value transfer-ownership="none">
				<type name="none"/>
			</return-value>
			<parameters>
				<parameter name="value" transfer-ownership="none">
					<type name="gint" c:type="gint"/>
				</parameter>
			</parameters>
		</virtual-method>
		<property name="thumbnails" writable="1">
			<type name="Gee.ArrayList" c:type="GeeArrayList*">
				<type name="RygelServer.Thumbnail" c:type="RygelThumbnail*"/>
			</type>
		</property>
		<method name="get_thumbnails" c:identifier="rygel_visual_item_get_thumbnails">
			<return-value transfer-ownership="none">
				<type name="Gee.ArrayList" c:type="GeeArrayList*">
					<type name="RygelServer.Thumbnail" c:type="RygelThumbnail*"/>
				</type>
			</return-value>
		</method>
		<virtual-method name="get_thumbnails" invoker="get_thumbnails">
			<return-value transfer-ownership="none">
				<type name="Gee.ArrayList" c:type="GeeArrayList*">
					<type name="RygelServer.Thumbnail" c:type="RygelThumbnail*"/>
				</type>
			</return-value>
		</virtual-method>
		<method name="set_thumbnails" c:identifier="rygel_visual_item_set_thumbnails">
			<return-value transfer-ownership="none">
				<type name="none"/>
			</return-value>
			<parameters>
				<parameter name="value" transfer-ownership="none">
					<type name="Gee.ArrayList" c:type="GeeArrayList*">
						<type name="RygelServer.Thumbnail" c:type="RygelThumbnail*"/>
					</type>
				</parameter>
			</parameters>
		</method>
		<virtual-method name="set_thumbnails" invoker="set_thumbnails">
			<return-value transfer-ownership="none">
				<type name="none"/>
			</return-value>
			<parameters>
				<parameter name="value" transfer-ownership="none">
					<type name="Gee.ArrayList" c:type="GeeArrayList*">
						<type name="RygelServer.Thumbnail" c:type="RygelThumbnail*"/>
					</type>
				</parameter>
			</parameters>
		</virtual-method>
	</interface>
	<record name="VisualItemIface" c:type="RygelVisualItemIface" glib:is-gtype-struct-for="VisualItem">
		<field name="parent_iface">
			<type name="GObject.TypeInterface" c:type="GTypeInterface"/>
		</field>
		<field name="get_width">
			<callback name="get_width" c:type="get_width">
				<return-value transfer-ownership="none">
					<type name="gint" c:type="gint"/>
				</return-value>
				<parameters>
					<parameter name="self" transfer-ownership="none">
						<type name="RygelServer.VisualItem" c:type="RygelVisualItem*"/>
					</parameter>
				</parameters>
			</callback>
		</field>
		<field name="set_width">
			<callback name="set_width" c:type="set_width">
				<return-value transfer-ownership="none">
					<type name="none"/>
				</return-value>
				<parameters>
					<parameter name="self" transfer-ownership="none">
						<type name="RygelServer.VisualItem" c:type="RygelVisualItem*"/>
					</parameter>
					<parameter name="value" transfer-ownership="none">
						<type name="gint" c:type="gint"/>
					</parameter>
				</parameters>
			</callback>
		</field>
		<field name="get_height">
			<callback name="get_height" c:type="get_height">
				<return-value transfer-ownership="none">
					<type name="gint" c:type="gint"/>
				</return-value>
				<parameters>
					<parameter name="self" transfer-ownership="none">
						<type name="RygelServer.VisualItem" c:type="RygelVisualItem*"/>
					</parameter>
				</parameters>
			</callback>
		</field>
		<field name="set_height">
			<callback name="set_height" c:type="set_height">
				<return-value transfer-ownership="none">
					<type name="none"/>
				</return-value>
				<parameters>
					<parameter name="self" transfer-ownership="none">
						<type name="RygelServer.VisualItem" c:type="RygelVisualItem*"/>
					</parameter>
					<parameter name="value" transfer-ownership="none">
						<type name="gint" c:type="gint"/>
					</parameter>
				</parameters>
			</callback>
		</field>
		<field name="get_color_depth">
			<callback name="get_color_depth" c:type="get_color_depth">
				<return-value transfer-ownership="none">
					<type name="gint" c:type="gint"/>
				</return-value>
				<parameters>
					<parameter name="self" transfer-ownership="none">
						<type name="RygelServer.VisualItem" c:type="RygelVisualItem*"/>
					</parameter>
				</parameters>
			</callback>
		</field>
		<field name="set_color_depth">
			<callback name="set_color_depth" c:type="set_color_depth">
				<return-value transfer-ownership="none">
					<type name="none"/>
				</return-value>
				<parameters>
					<parameter name="self" transfer-ownership="none">
						<type name="RygelServer.VisualItem" c:type="RygelVisualItem*"/>
					</parameter>
					<parameter name="value" transfer-ownership="none">
						<type name="gint" c:type="gint"/>
					</parameter>
				</parameters>
			</callback>
		</field>
		<field name="get_thumbnails">
			<callback name="get_thumbnails" c:type="get_thumbnails">
				<return-value transfer-ownership="none">
					<type name="Gee.ArrayList" c:type="GeeArrayList*">
						<type name="RygelServer.Thumbnail" c:type="RygelThumbnail*"/>
					</type>
				</return-value>
				<parameters>
					<parameter name="self" transfer-ownership="none">
						<type name="RygelServer.VisualItem" c:type="RygelVisualItem*"/>
					</parameter>
				</parameters>
			</callback>
		</field>
		<field name="set_thumbnails">
			<callback name="set_thumbnails" c:type="set_thumbnails">
				<return-value transfer-ownership="none">
					<type name="none"/>
				</return-value>
				<parameters>
					<parameter name="self" transfer-ownership="none">
						<type name="RygelServer.VisualItem" c:type="RygelVisualItem*"/>
					</parameter>
					<parameter name="value" transfer-ownership="none">
						<type name="Gee.ArrayList" c:type="GeeArrayList*">
							<type name="RygelServer.Thumbnail" c:type="RygelThumbnail*"/>
						</type>
					</parameter>
				</parameters>
			</callback>
		</field>
	</record>
	<interface name="WritableContainer" c:type="RygelWritableContainer" glib:type-name="RygelWritableContainer" glib:get-type="rygel_writable_container_get_type" glib:type-struct="WritableContainerIface">
		<prerequisite name="RygelServer.MediaContainer"/>
		<method name="can_create" c:identifier="rygel_writable_container_can_create">
			<return-value transfer-ownership="full">
				<type name="gboolean" c:type="gboolean"/>
			</return-value>
			<parameters>
				<parameter name="upnp_class" transfer-ownership="none">
					<type name="utf8" c:type="const gchar*"/>
				</parameter>
			</parameters>
		</method>
		<method name="add_item" c:identifier="rygel_writable_container_add_item">
			<return-value transfer-ownership="none">
				<type name="none"/>
			</return-value>
			<parameters>
				<parameter name="item" transfer-ownership="none">
					<type name="RygelServer.MediaFileItem" c:type="RygelMediaFileItem*"/>
				</parameter>
				<parameter name="cancellable" transfer-ownership="none" allow-none="1">
					<type name="Gio.Cancellable" c:type="GCancellable*"/>
				</parameter>
				<parameter name="_callback_" transfer-ownership="none" allow-none="1" closure="3" scope="async">
					<type name="Gio.AsyncReadyCallback" c:type="GAsyncReadyCallback"/>
				</parameter>
				<parameter name="_callback__target" transfer-ownership="none" allow-none="1">
					<type name="gpointer" c:type="void*"/>
				</parameter>
			</parameters>
		</method>
		<method name="add_item_finish" c:identifier="rygel_writable_container_add_item_finish" throws="1">
			<return-value transfer-ownership="full">
				<type name="none"/>
			</return-value>
			<parameters>
				<parameter name="_res_" transfer-ownership="none">
					<type name="Gio.AsyncResult" c:type="GAsyncResult*"/>
				</parameter>
			</parameters>
		</method>
		<virtual-method name="add_item" invoker="add_item">
			<return-value transfer-ownership="none">
				<type name="none"/>
			</return-value>
			<parameters>
				<parameter name="item" transfer-ownership="none">
					<type name="RygelServer.MediaFileItem" c:type="RygelMediaFileItem*"/>
				</parameter>
				<parameter name="cancellable" transfer-ownership="none" allow-none="1">
					<type name="Gio.Cancellable" c:type="GCancellable*"/>
				</parameter>
				<parameter name="_callback_" transfer-ownership="none" allow-none="1" closure="3" scope="async">
					<type name="Gio.AsyncReadyCallback" c:type="GAsyncReadyCallback"/>
				</parameter>
				<parameter name="_callback__target" transfer-ownership="none" allow-none="1">
					<type name="gpointer" c:type="void*"/>
				</parameter>
			</parameters>
		</virtual-method>
		<virtual-method name="add_item_finish" invoker="add_item_finish" throws="1">
			<return-value transfer-ownership="full">
				<type name="none"/>
			</return-value>
			<parameters>
				<parameter name="_res_" transfer-ownership="none">
					<type name="Gio.AsyncResult" c:type="GAsyncResult*"/>
				</parameter>
			</parameters>
		</virtual-method>
		<method name="add_container" c:identifier="rygel_writable_container_add_container">
			<return-value transfer-ownership="none">
				<type name="none"/>
			</return-value>
			<parameters>
				<parameter name="container" transfer-ownership="none">
					<type name="RygelServer.MediaContainer" c:type="RygelMediaContainer*"/>
				</parameter>
				<parameter name="cancellable" transfer-ownership="none" allow-none="1">
					<type name="Gio.Cancellable" c:type="GCancellable*"/>
				</parameter>
				<parameter name="_callback_" transfer-ownership="none" allow-none="1" closure="3" scope="async">
					<type name="Gio.AsyncReadyCallback" c:type="GAsyncReadyCallback"/>
				</parameter>
				<parameter name="_callback__target" transfer-ownership="none" allow-none="1">
					<type name="gpointer" c:type="void*"/>
				</parameter>
			</parameters>
		</method>
		<method name="add_container_finish" c:identifier="rygel_writable_container_add_container_finish" throws="1">
			<return-value transfer-ownership="full">
				<type name="none"/>
			</return-value>
			<parameters>
				<parameter name="_res_" transfer-ownership="none">
					<type name="Gio.AsyncResult" c:type="GAsyncResult*"/>
				</parameter>
			</parameters>
		</method>
		<virtual-method name="add_container" invoker="add_container">
			<return-value transfer-ownership="none">
				<type name="none"/>
			</return-value>
			<parameters>
				<parameter name="container" transfer-ownership="none">
					<type name="RygelServer.MediaContainer" c:type="RygelMediaContainer*"/>
				</parameter>
				<parameter name="cancellable" transfer-ownership="none" allow-none="1">
					<type name="Gio.Cancellable" c:type="GCancellable*"/>
				</parameter>
				<parameter name="_callback_" transfer-ownership="none" allow-none="1" closure="3" scope="async">
					<type name="Gio.AsyncReadyCallback" c:type="GAsyncReadyCallback"/>
				</parameter>
				<parameter name="_callback__target" transfer-ownership="none" allow-none="1">
					<type name="gpointer" c:type="void*"/>
				</parameter>
			</parameters>
		</virtual-method>
		<virtual-method name="add_container_finish" invoker="add_container_finish" throws="1">
			<return-value transfer-ownership="full">
				<type name="none"/>
			</return-value>
			<parameters>
				<parameter name="_res_" transfer-ownership="none">
					<type name="Gio.AsyncResult" c:type="GAsyncResult*"/>
				</parameter>
			</parameters>
		</virtual-method>
		<method name="add_reference" c:identifier="rygel_writable_container_add_reference">
			<return-value transfer-ownership="none">
				<type name="none"/>
			</return-value>
			<parameters>
				<parameter name="object" transfer-ownership="none">
					<type name="RygelServer.MediaObject" c:type="RygelMediaObject*"/>
				</parameter>
				<parameter name="cancellable" transfer-ownership="none" allow-none="1">
					<type name="Gio.Cancellable" c:type="GCancellable*"/>
				</parameter>
				<parameter name="_callback_" transfer-ownership="none" allow-none="1" closure="3" scope="async">
					<type name="Gio.AsyncReadyCallback" c:type="GAsyncReadyCallback"/>
				</parameter>
				<parameter name="_callback__target" transfer-ownership="none" allow-none="1">
					<type name="gpointer" c:type="void*"/>
				</parameter>
			</parameters>
		</method>
		<method name="add_reference_finish" c:identifier="rygel_writable_container_add_reference_finish" throws="1">
			<return-value transfer-ownership="full">
				<type name="utf8" c:type="gchar*"/>
			</return-value>
			<parameters>
				<parameter name="_res_" transfer-ownership="none">
					<type name="Gio.AsyncResult" c:type="GAsyncResult*"/>
				</parameter>
			</parameters>
		</method>
		<virtual-method name="add_reference" invoker="add_reference">
			<return-value transfer-ownership="none">
				<type name="none"/>
			</return-value>
			<parameters>
				<parameter name="object" transfer-ownership="none">
					<type name="RygelServer.MediaObject" c:type="RygelMediaObject*"/>
				</parameter>
				<parameter name="cancellable" transfer-ownership="none" allow-none="1">
					<type name="Gio.Cancellable" c:type="GCancellable*"/>
				</parameter>
				<parameter name="_callback_" transfer-ownership="none" allow-none="1" closure="3" scope="async">
					<type name="Gio.AsyncReadyCallback" c:type="GAsyncReadyCallback"/>
				</parameter>
				<parameter name="_callback__target" transfer-ownership="none" allow-none="1">
					<type name="gpointer" c:type="void*"/>
				</parameter>
			</parameters>
		</virtual-method>
		<virtual-method name="add_reference_finish" invoker="add_reference_finish" throws="1">
			<return-value transfer-ownership="full">
				<type name="utf8" c:type="gchar*"/>
			</return-value>
			<parameters>
				<parameter name="_res_" transfer-ownership="none">
					<type name="Gio.AsyncResult" c:type="GAsyncResult*"/>
				</parameter>
			</parameters>
		</virtual-method>
		<method name="remove_item" c:identifier="rygel_writable_container_remove_item">
			<return-value transfer-ownership="none">
				<type name="none"/>
			</return-value>
			<parameters>
				<parameter name="id" transfer-ownership="none">
					<type name="utf8" c:type="const gchar*"/>
				</parameter>
				<parameter name="cancellable" transfer-ownership="none" allow-none="1">
					<type name="Gio.Cancellable" c:type="GCancellable*"/>
				</parameter>
				<parameter name="_callback_" transfer-ownership="none" allow-none="1" closure="3" scope="async">
					<type name="Gio.AsyncReadyCallback" c:type="GAsyncReadyCallback"/>
				</parameter>
				<parameter name="_callback__target" transfer-ownership="none" allow-none="1">
					<type name="gpointer" c:type="void*"/>
				</parameter>
			</parameters>
		</method>
		<method name="remove_item_finish" c:identifier="rygel_writable_container_remove_item_finish" throws="1">
			<return-value transfer-ownership="full">
				<type name="none"/>
			</return-value>
			<parameters>
				<parameter name="_res_" transfer-ownership="none">
					<type name="Gio.AsyncResult" c:type="GAsyncResult*"/>
				</parameter>
			</parameters>
		</method>
		<virtual-method name="remove_item" invoker="remove_item">
			<return-value transfer-ownership="none">
				<type name="none"/>
			</return-value>
			<parameters>
				<parameter name="id" transfer-ownership="none">
					<type name="utf8" c:type="const gchar*"/>
				</parameter>
				<parameter name="cancellable" transfer-ownership="none" allow-none="1">
					<type name="Gio.Cancellable" c:type="GCancellable*"/>
				</parameter>
				<parameter name="_callback_" transfer-ownership="none" allow-none="1" closure="3" scope="async">
					<type name="Gio.AsyncReadyCallback" c:type="GAsyncReadyCallback"/>
				</parameter>
				<parameter name="_callback__target" transfer-ownership="none" allow-none="1">
					<type name="gpointer" c:type="void*"/>
				</parameter>
			</parameters>
		</virtual-method>
		<virtual-method name="remove_item_finish" invoker="remove_item_finish" throws="1">
			<return-value transfer-ownership="full">
				<type name="none"/>
			</return-value>
			<parameters>
				<parameter name="_res_" transfer-ownership="none">
					<type name="Gio.AsyncResult" c:type="GAsyncResult*"/>
				</parameter>
			</parameters>
		</virtual-method>
		<method name="remove_container" c:identifier="rygel_writable_container_remove_container">
			<return-value transfer-ownership="none">
				<type name="none"/>
			</return-value>
			<parameters>
				<parameter name="id" transfer-ownership="none">
					<type name="utf8" c:type="const gchar*"/>
				</parameter>
				<parameter name="cancellable" transfer-ownership="none" allow-none="1">
					<type name="Gio.Cancellable" c:type="GCancellable*"/>
				</parameter>
				<parameter name="_callback_" transfer-ownership="none" allow-none="1" closure="3" scope="async">
					<type name="Gio.AsyncReadyCallback" c:type="GAsyncReadyCallback"/>
				</parameter>
				<parameter name="_callback__target" transfer-ownership="none" allow-none="1">
					<type name="gpointer" c:type="void*"/>
				</parameter>
			</parameters>
		</method>
		<method name="remove_container_finish" c:identifier="rygel_writable_container_remove_container_finish" throws="1">
			<return-value transfer-ownership="full">
				<type name="none"/>
			</return-value>
			<parameters>
				<parameter name="_res_" transfer-ownership="none">
					<type name="Gio.AsyncResult" c:type="GAsyncResult*"/>
				</parameter>
			</parameters>
		</method>
		<virtual-method name="remove_container" invoker="remove_container">
			<return-value transfer-ownership="none">
				<type name="none"/>
			</return-value>
			<parameters>
				<parameter name="id" transfer-ownership="none">
					<type name="utf8" c:type="const gchar*"/>
				</parameter>
				<parameter name="cancellable" transfer-ownership="none" allow-none="1">
					<type name="Gio.Cancellable" c:type="GCancellable*"/>
				</parameter>
				<parameter name="_callback_" transfer-ownership="none" allow-none="1" closure="3" scope="async">
					<type name="Gio.AsyncReadyCallback" c:type="GAsyncReadyCallback"/>
				</parameter>
				<parameter name="_callback__target" transfer-ownership="none" allow-none="1">
					<type name="gpointer" c:type="void*"/>
				</parameter>
			</parameters>
		</virtual-method>
		<virtual-method name="remove_container_finish" invoker="remove_container_finish" throws="1">
			<return-value transfer-ownership="full">
				<type name="none"/>
			</return-value>
			<parameters>
				<parameter name="_res_" transfer-ownership="none">
					<type name="Gio.AsyncResult" c:type="GAsyncResult*"/>
				</parameter>
			</parameters>
		</virtual-method>
		<constant name="WRITABLE_SCHEME" c:identifier="RYGEL_WRITABLE_CONTAINER_WRITABLE_SCHEME" value="rygel-writable://">
			<type name="utf8" c:type="const gchar*"/>
		</constant>
		<property name="create-classes" writable="1">
			<type name="Gee.ArrayList" c:type="GeeArrayList*">
				<type name="utf8" c:type="gchar*"/>
			</type>
		</property>
		<method name="get_create_classes" c:identifier="rygel_writable_container_get_create_classes">
			<return-value transfer-ownership="none">
				<type name="Gee.ArrayList" c:type="GeeArrayList*">
					<type name="utf8" c:type="gchar*"/>
				</type>
			</return-value>
		</method>
		<virtual-method name="get_create_classes" invoker="get_create_classes">
			<return-value transfer-ownership="none">
				<type name="Gee.ArrayList" c:type="GeeArrayList*">
					<type name="utf8" c:type="gchar*"/>
				</type>
			</return-value>
		</virtual-method>
		<method name="set_create_classes" c:identifier="rygel_writable_container_set_create_classes">
			<return-value transfer-ownership="none">
				<type name="none"/>
			</return-value>
			<parameters>
				<parameter name="value" transfer-ownership="none">
					<type name="Gee.ArrayList" c:type="GeeArrayList*">
						<type name="utf8" c:type="gchar*"/>
					</type>
				</parameter>
			</parameters>
		</method>
		<virtual-method name="set_create_classes" invoker="set_create_classes">
			<return-value transfer-ownership="none">
				<type name="none"/>
			</return-value>
			<parameters>
				<parameter name="value" transfer-ownership="none">
					<type name="Gee.ArrayList" c:type="GeeArrayList*">
						<type name="utf8" c:type="gchar*"/>
					</type>
				</parameter>
			</parameters>
		</virtual-method>
	</interface>
	<record name="WritableContainerIface" c:type="RygelWritableContainerIface" glib:is-gtype-struct-for="WritableContainer">
		<field name="parent_iface">
			<type name="GObject.TypeInterface" c:type="GTypeInterface"/>
		</field>
		<field name="add_item">
			<callback name="add_item" c:type="add_item">
				<return-value transfer-ownership="none">
					<type name="none"/>
				</return-value>
				<parameters>
					<parameter name="self" transfer-ownership="none">
						<type name="RygelServer.WritableContainer" c:type="RygelWritableContainer*"/>
					</parameter>
					<parameter name="item" transfer-ownership="none">
						<type name="RygelServer.MediaFileItem" c:type="RygelMediaFileItem*"/>
					</parameter>
					<parameter name="cancellable" transfer-ownership="none" allow-none="1">
						<type name="Gio.Cancellable" c:type="GCancellable*"/>
					</parameter>
					<parameter name="_callback_" transfer-ownership="none" allow-none="1" closure="4" scope="async">
						<type name="Gio.AsyncReadyCallback" c:type="GAsyncReadyCallback"/>
					</parameter>
					<parameter name="_callback__target" transfer-ownership="none" allow-none="1">
						<type name="gpointer" c:type="void*"/>
					</parameter>
				</parameters>
			</callback>
		</field>
		<field name="add_item_finish">
			<callback name="add_item_finish" c:type="add_item_finish" throws="1">
				<return-value transfer-ownership="full">
					<type name="none"/>
				</return-value>
				<parameters>
					<parameter name="self" transfer-ownership="none">
						<type name="RygelServer.WritableContainer" c:type="RygelWritableContainer*"/>
					</parameter>
					<parameter name="_res_" transfer-ownership="none">
						<type name="Gio.AsyncResult" c:type="GAsyncResult*"/>
					</parameter>
				</parameters>
			</callback>
		</field>
		<field name="add_container">
			<callback name="add_container" c:type="add_container">
				<return-value transfer-ownership="none">
					<type name="none"/>
				</return-value>
				<parameters>
					<parameter name="self" transfer-ownership="none">
						<type name="RygelServer.WritableContainer" c:type="RygelWritableContainer*"/>
					</parameter>
					<parameter name="container" transfer-ownership="none">
						<type name="RygelServer.MediaContainer" c:type="RygelMediaContainer*"/>
					</parameter>
					<parameter name="cancellable" transfer-ownership="none" allow-none="1">
						<type name="Gio.Cancellable" c:type="GCancellable*"/>
					</parameter>
					<parameter name="_callback_" transfer-ownership="none" allow-none="1" closure="4" scope="async">
						<type name="Gio.AsyncReadyCallback" c:type="GAsyncReadyCallback"/>
					</parameter>
					<parameter name="_callback__target" transfer-ownership="none" allow-none="1">
						<type name="gpointer" c:type="void*"/>
					</parameter>
				</parameters>
			</callback>
		</field>
		<field name="add_container_finish">
			<callback name="add_container_finish" c:type="add_container_finish" throws="1">
				<return-value transfer-ownership="full">
					<type name="none"/>
				</return-value>
				<parameters>
					<parameter name="self" transfer-ownership="none">
						<type name="RygelServer.WritableContainer" c:type="RygelWritableContainer*"/>
					</parameter>
					<parameter name="_res_" transfer-ownership="none">
						<type name="Gio.AsyncResult" c:type="GAsyncResult*"/>
					</parameter>
				</parameters>
			</callback>
		</field>
		<field name="add_reference">
			<callback name="add_reference" c:type="add_reference">
				<return-value transfer-ownership="none">
					<type name="none"/>
				</return-value>
				<parameters>
					<parameter name="self" transfer-ownership="none">
						<type name="RygelServer.WritableContainer" c:type="RygelWritableContainer*"/>
					</parameter>
					<parameter name="object" transfer-ownership="none">
						<type name="RygelServer.MediaObject" c:type="RygelMediaObject*"/>
					</parameter>
					<parameter name="cancellable" transfer-ownership="none" allow-none="1">
						<type name="Gio.Cancellable" c:type="GCancellable*"/>
					</parameter>
					<parameter name="_callback_" transfer-ownership="none" allow-none="1" closure="4" scope="async">
						<type name="Gio.AsyncReadyCallback" c:type="GAsyncReadyCallback"/>
					</parameter>
					<parameter name="_callback__target" transfer-ownership="none" allow-none="1">
						<type name="gpointer" c:type="void*"/>
					</parameter>
				</parameters>
			</callback>
		</field>
		<field name="add_reference_finish">
			<callback name="add_reference_finish" c:type="add_reference_finish" throws="1">
				<return-value transfer-ownership="full">
					<type name="utf8" c:type="gchar*"/>
				</return-value>
				<parameters>
					<parameter name="self" transfer-ownership="none">
						<type name="RygelServer.WritableContainer" c:type="RygelWritableContainer*"/>
					</parameter>
					<parameter name="_res_" transfer-ownership="none">
						<type name="Gio.AsyncResult" c:type="GAsyncResult*"/>
					</parameter>
				</parameters>
			</callback>
		</field>
		<field name="remove_item">
			<callback name="remove_item" c:type="remove_item">
				<return-value transfer-ownership="none">
					<type name="none"/>
				</return-value>
				<parameters>
					<parameter name="self" transfer-ownership="none">
						<type name="RygelServer.WritableContainer" c:type="RygelWritableContainer*"/>
					</parameter>
					<parameter name="id" transfer-ownership="none">
						<type name="utf8" c:type="const gchar*"/>
					</parameter>
					<parameter name="cancellable" transfer-ownership="none" allow-none="1">
						<type name="Gio.Cancellable" c:type="GCancellable*"/>
					</parameter>
					<parameter name="_callback_" transfer-ownership="none" allow-none="1" closure="4" scope="async">
						<type name="Gio.AsyncReadyCallback" c:type="GAsyncReadyCallback"/>
					</parameter>
					<parameter name="_callback__target" transfer-ownership="none" allow-none="1">
						<type name="gpointer" c:type="void*"/>
					</parameter>
				</parameters>
			</callback>
		</field>
		<field name="remove_item_finish">
			<callback name="remove_item_finish" c:type="remove_item_finish" throws="1">
				<return-value transfer-ownership="full">
					<type name="none"/>
				</return-value>
				<parameters>
					<parameter name="self" transfer-ownership="none">
						<type name="RygelServer.WritableContainer" c:type="RygelWritableContainer*"/>
					</parameter>
					<parameter name="_res_" transfer-ownership="none">
						<type name="Gio.AsyncResult" c:type="GAsyncResult*"/>
					</parameter>
				</parameters>
			</callback>
		</field>
		<field name="remove_container">
			<callback name="remove_container" c:type="remove_container">
				<return-value transfer-ownership="none">
					<type name="none"/>
				</return-value>
				<parameters>
					<parameter name="self" transfer-ownership="none">
						<type name="RygelServer.WritableContainer" c:type="RygelWritableContainer*"/>
					</parameter>
					<parameter name="id" transfer-ownership="none">
						<type name="utf8" c:type="const gchar*"/>
					</parameter>
					<parameter name="cancellable" transfer-ownership="none" allow-none="1">
						<type name="Gio.Cancellable" c:type="GCancellable*"/>
					</parameter>
					<parameter name="_callback_" transfer-ownership="none" allow-none="1" closure="4" scope="async">
						<type name="Gio.AsyncReadyCallback" c:type="GAsyncReadyCallback"/>
					</parameter>
					<parameter name="_callback__target" transfer-ownership="none" allow-none="1">
						<type name="gpointer" c:type="void*"/>
					</parameter>
				</parameters>
			</callback>
		</field>
		<field name="remove_container_finish">
			<callback name="remove_container_finish" c:type="remove_container_finish" throws="1">
				<return-value transfer-ownership="full">
					<type name="none"/>
				</return-value>
				<parameters>
					<parameter name="self" transfer-ownership="none">
						<type name="RygelServer.WritableContainer" c:type="RygelWritableContainer*"/>
					</parameter>
					<parameter name="_res_" transfer-ownership="none">
						<type name="Gio.AsyncResult" c:type="GAsyncResult*"/>
					</parameter>
				</parameters>
			</callback>
		</field>
		<field name="get_create_classes">
			<callback name="get_create_classes" c:type="get_create_classes">
				<return-value transfer-ownership="none">
					<type name="Gee.ArrayList" c:type="GeeArrayList*">
						<type name="utf8" c:type="gchar*"/>
					</type>
				</return-value>
				<parameters>
					<parameter name="self" transfer-ownership="none">
						<type name="RygelServer.WritableContainer" c:type="RygelWritableContainer*"/>
					</parameter>
				</parameters>
			</callback>
		</field>
		<field name="set_create_classes">
			<callback name="set_create_classes" c:type="set_create_classes">
				<return-value transfer-ownership="none">
					<type name="none"/>
				</return-value>
				<parameters>
					<parameter name="self" transfer-ownership="none">
						<type name="RygelServer.WritableContainer" c:type="RygelWritableContainer*"/>
					</parameter>
					<parameter name="value" transfer-ownership="none">
						<type name="Gee.ArrayList" c:type="GeeArrayList*">
							<type name="utf8" c:type="gchar*"/>
						</type>
					</parameter>
				</parameters>
			</callback>
		</field>
	</record>
	<interface name="DataSource" c:type="RygelDataSource" glib:type-name="RygelDataSource" glib:get-type="rygel_data_source_get_type" glib:type-struct="DataSourceIface">
		<prerequisite name="GObject.Object"/>
		<method name="preroll" c:identifier="rygel_data_source_preroll" throws="1">
			<return-value transfer-ownership="full" allow-none="1">
				<type name="Gee.List" c:type="GeeList*">
					<type name="RygelServer.HTTPResponseElement" c:type="RygelHTTPResponseElement*"/>
				</type>
			</return-value>
			<parameters>
				<parameter name="seek" transfer-ownership="none" allow-none="1">
					<type name="RygelServer.HTTPSeekRequest" c:type="RygelHTTPSeekRequest*"/>
				</parameter>
				<parameter name="playspeed" transfer-ownership="none" allow-none="1">
					<type name="RygelServer.PlaySpeedRequest" c:type="RygelPlaySpeedRequest*"/>
				</parameter>
			</parameters>
		</method>
		<virtual-method name="preroll" invoker="preroll" throws="1">
			<return-value transfer-ownership="full" allow-none="1">
				<type name="Gee.List" c:type="GeeList*">
					<type name="RygelServer.HTTPResponseElement" c:type="RygelHTTPResponseElement*"/>
				</type>
			</return-value>
			<parameters>
				<parameter name="seek" transfer-ownership="none" allow-none="1">
					<type name="RygelServer.HTTPSeekRequest" c:type="RygelHTTPSeekRequest*"/>
				</parameter>
				<parameter name="playspeed" transfer-ownership="none" allow-none="1">
					<type name="RygelServer.PlaySpeedRequest" c:type="RygelPlaySpeedRequest*"/>
				</parameter>
			</parameters>
		</virtual-method>
		<method name="start" c:identifier="rygel_data_source_start" throws="1">
			<return-value transfer-ownership="full">
				<type name="none"/>
			</return-value>
		</method>
		<virtual-method name="start" invoker="start" throws="1">
			<return-value transfer-ownership="full">
				<type name="none"/>
			</return-value>
		</virtual-method>
		<method name="freeze" c:identifier="rygel_data_source_freeze">
			<return-value transfer-ownership="full">
				<type name="none"/>
			</return-value>
		</method>
		<virtual-method name="freeze" invoker="freeze">
			<return-value transfer-ownership="full">
				<type name="none"/>
			</return-value>
		</virtual-method>
		<method name="thaw" c:identifier="rygel_data_source_thaw">
			<return-value transfer-ownership="full">
				<type name="none"/>
			</return-value>
		</method>
		<virtual-method name="thaw" invoker="thaw">
			<return-value transfer-ownership="full">
				<type name="none"/>
			</return-value>
		</virtual-method>
		<method name="stop" c:identifier="rygel_data_source_stop">
			<return-value transfer-ownership="full">
				<type name="none"/>
			</return-value>
		</method>
		<virtual-method name="stop" invoker="stop">
			<return-value transfer-ownership="full">
				<type name="none"/>
			</return-value>
		</virtual-method>
		<glib:signal name="data_available">
			<return-value transfer-ownership="full">
				<type name="none"/>
			</return-value>
			<parameters>
				<parameter name="data" transfer-ownership="none">
					<array length="1">
						<type name="guint8" c:type="guint8"/>
					</array>
				</parameter>
				<parameter name="data_length1" transfer-ownership="none">
					<type name="gint" c:type="gint"/>
				</parameter>
			</parameters>
		</glib:signal>
		<glib:signal name="done">
			<return-value transfer-ownership="full">
				<type name="none"/>
			</return-value>
		</glib:signal>
		<glib:signal name="error">
			<return-value transfer-ownership="full">
				<type name="none"/>
			</return-value>
			<parameters>
				<parameter name="error" transfer-ownership="none">
					<type name="GLib.Error"/>
				</parameter>
			</parameters>
		</glib:signal>
	</interface>
	<record name="DataSourceIface" c:type="RygelDataSourceIface" glib:is-gtype-struct-for="DataSource">
		<field name="parent_iface">
			<type name="GObject.TypeInterface" c:type="GTypeInterface"/>
		</field>
		<field name="preroll">
			<callback name="preroll" c:type="preroll" throws="1">
				<return-value transfer-ownership="full" allow-none="1">
					<type name="Gee.List" c:type="GeeList*">
						<type name="RygelServer.HTTPResponseElement" c:type="RygelHTTPResponseElement*"/>
					</type>
				</return-value>
				<parameters>
					<parameter name="self" transfer-ownership="none">
						<type name="RygelServer.DataSource" c:type="RygelDataSource*"/>
					</parameter>
					<parameter name="seek" transfer-ownership="none" allow-none="1">
						<type name="RygelServer.HTTPSeekRequest" c:type="RygelHTTPSeekRequest*"/>
					</parameter>
					<parameter name="playspeed" transfer-ownership="none" allow-none="1">
						<type name="RygelServer.PlaySpeedRequest" c:type="RygelPlaySpeedRequest*"/>
					</parameter>
				</parameters>
			</callback>
		</field>
		<field name="start">
			<callback name="start" c:type="start" throws="1">
				<return-value transfer-ownership="full">
					<type name="none"/>
				</return-value>
				<parameters>
					<parameter name="self" transfer-ownership="none">
						<type name="RygelServer.DataSource" c:type="RygelDataSource*"/>
					</parameter>
				</parameters>
			</callback>
		</field>
		<field name="freeze">
			<callback name="freeze" c:type="freeze">
				<return-value transfer-ownership="full">
					<type name="none"/>
				</return-value>
				<parameters>
					<parameter name="self" transfer-ownership="none">
						<type name="RygelServer.DataSource" c:type="RygelDataSource*"/>
					</parameter>
				</parameters>
			</callback>
		</field>
		<field name="thaw">
			<callback name="thaw" c:type="thaw">
				<return-value transfer-ownership="full">
					<type name="none"/>
				</return-value>
				<parameters>
					<parameter name="self" transfer-ownership="none">
						<type name="RygelServer.DataSource" c:type="RygelDataSource*"/>
					</parameter>
				</parameters>
			</callback>
		</field>
		<field name="stop">
			<callback name="stop" c:type="stop">
				<return-value transfer-ownership="full">
					<type name="none"/>
				</return-value>
				<parameters>
					<parameter name="self" transfer-ownership="none">
						<type name="RygelServer.DataSource" c:type="RygelDataSource*"/>
					</parameter>
				</parameters>
			</callback>
		</field>
	</record>
	<interface name="UpdatableObject" c:type="RygelUpdatableObject" glib:type-name="RygelUpdatableObject" glib:get-type="rygel_updatable_object_get_type" glib:type-struct="UpdatableObjectIface">
		<prerequisite name="RygelServer.MediaObject"/>
		<method name="commit" c:identifier="rygel_updatable_object_commit">
			<return-value transfer-ownership="none">
				<type name="none"/>
			</return-value>
			<parameters>
				<parameter name="_callback_" transfer-ownership="none" allow-none="1" closure="1" scope="async">
					<type name="Gio.AsyncReadyCallback" c:type="GAsyncReadyCallback"/>
				</parameter>
				<parameter name="_callback__target" transfer-ownership="none" allow-none="1">
					<type name="gpointer" c:type="void*"/>
				</parameter>
			</parameters>
		</method>
		<method name="commit_finish" c:identifier="rygel_updatable_object_commit_finish" throws="1">
			<return-value transfer-ownership="full">
				<type name="none"/>
			</return-value>
			<parameters>
				<parameter name="_res_" transfer-ownership="none">
					<type name="Gio.AsyncResult" c:type="GAsyncResult*"/>
				</parameter>
			</parameters>
		</method>
		<virtual-method name="commit" invoker="commit">
			<return-value transfer-ownership="none">
				<type name="none"/>
			</return-value>
			<parameters>
				<parameter name="_callback_" transfer-ownership="none" allow-none="1" closure="1" scope="async">
					<type name="Gio.AsyncReadyCallback" c:type="GAsyncReadyCallback"/>
				</parameter>
				<parameter name="_callback__target" transfer-ownership="none" allow-none="1">
					<type name="gpointer" c:type="void*"/>
				</parameter>
			</parameters>
		</virtual-method>
		<virtual-method name="commit_finish" invoker="commit_finish" throws="1">
			<return-value transfer-ownership="full">
				<type name="none"/>
			</return-value>
			<parameters>
				<parameter name="_res_" transfer-ownership="none">
					<type name="Gio.AsyncResult" c:type="GAsyncResult*"/>
				</parameter>
			</parameters>
		</virtual-method>
	</interface>
	<record name="UpdatableObjectIface" c:type="RygelUpdatableObjectIface" glib:is-gtype-struct-for="UpdatableObject">
		<field name="parent_iface">
			<type name="GObject.TypeInterface" c:type="GTypeInterface"/>
		</field>
		<field name="commit">
			<callback name="commit" c:type="commit">
				<return-value transfer-ownership="none">
					<type name="none"/>
				</return-value>
				<parameters>
					<parameter name="self" transfer-ownership="none">
						<type name="RygelServer.UpdatableObject" c:type="RygelUpdatableObject*"/>
					</parameter>
					<parameter name="_callback_" transfer-ownership="none" allow-none="1" closure="2" scope="async">
						<type name="Gio.AsyncReadyCallback" c:type="GAsyncReadyCallback"/>
					</parameter>
					<parameter name="_callback__target" transfer-ownership="none" allow-none="1">
						<type name="gpointer" c:type="void*"/>
					</parameter>
				</parameters>
			</callback>
		</field>
		<field name="commit_finish">
			<callback name="commit_finish" c:type="commit_finish" throws="1">
				<return-value transfer-ownership="full">
					<type name="none"/>
				</return-value>
				<parameters>
					<parameter name="self" transfer-ownership="none">
						<type name="RygelServer.UpdatableObject" c:type="RygelUpdatableObject*"/>
					</parameter>
					<parameter name="_res_" transfer-ownership="none">
						<type name="Gio.AsyncResult" c:type="GAsyncResult*"/>
					</parameter>
				</parameters>
			</callback>
		</field>
	</record>
</namespace>
</repository>
