<?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="GLib" version="2.0"/>
<include name="GObject" version="2.0"/>
<include name="GUPnPAV" version="1.0"/>
<include name="RygelCore" version="2.6"/>
<package name="rygel-renderer-2.6"/>
<c:include name="rygel-renderer.h"/>
<c:include name="rygel-core.h"/>
<c:include name="config.h"/>
<namespace name="RygelRenderer" version="2.6" c:prefix="Rygel">
	<class name="MediaRendererPlugin" c:type="RygelMediaRendererPlugin" glib:type-name="RygelMediaRendererPlugin" glib:get-type="rygel_media_renderer_plugin_get_type" glib:type-struct="MediaRendererPluginClass" parent="RygelCore.Plugin">
		<field name="parent_instance">
			<type name="RygelCore.Plugin" c:type="RygelPlugin"/>
		</field>
		<field name="priv">
			<type name="MediaRendererPluginPrivate" c:type="RygelMediaRendererPluginPrivate*"/>
		</field>
		<constructor name="new" c:identifier="rygel_media_renderer_plugin_new">
			<return-value transfer-ownership="full">
				<type name="RygelRenderer.MediaRendererPlugin" c:type="RygelMediaRendererPlugin*"/>
			</return-value>
			<parameters>
				<parameter name="name" transfer-ownership="none">
					<type name="utf8" c:type="const gchar*"/>
				</parameter>
				<parameter name="title" transfer-ownership="none" allow-none="1">
					<type name="utf8" c:type="const gchar*"/>
				</parameter>
				<parameter name="description" transfer-ownership="none" allow-none="1">
					<type name="utf8" c:type="const gchar*"/>
				</parameter>
				<parameter name="capabilities" transfer-ownership="none">
					<type name="RygelCore.PluginCapabilities" c:type="RygelPluginCapabilities"/>
				</parameter>
			</parameters>
		</constructor>
		<method name="get_player" c:identifier="rygel_media_renderer_plugin_get_player">
			<return-value transfer-ownership="full" allow-none="1">
				<type name="RygelRenderer.MediaPlayer" c:type="RygelMediaPlayer*"/>
			</return-value>
		</method>
		<virtual-method name="get_player" invoker="get_player">
			<return-value transfer-ownership="full" allow-none="1">
				<type name="RygelRenderer.MediaPlayer" c:type="RygelMediaPlayer*"/>
			</return-value>
		</virtual-method>
		<method name="get_protocol_info" c:identifier="rygel_media_renderer_plugin_get_protocol_info">
			<return-value transfer-ownership="full">
				<type name="utf8" c:type="gchar*"/>
			</return-value>
		</method>
		<property name="supported-profiles" writable="1" construct="1">
			<type name="GLib.List" c:type="GList*">
				<type name="RygelRenderer.DLNAProfile" c:type="RygelDLNAProfile*"/>
			</type>
		</property>
		<method name="get_supported_profiles" c:identifier="rygel_media_renderer_plugin_get_supported_profiles">
			<return-value transfer-ownership="none">
				<type name="GLib.List" c:type="GList*">
					<type name="RygelRenderer.DLNAProfile" c:type="RygelDLNAProfile*"/>
				</type>
			</return-value>
		</method>
		<method name="set_supported_profiles" c:identifier="rygel_media_renderer_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="RygelRenderer.DLNAProfile" c:type="RygelDLNAProfile*"/>
					</type>
				</parameter>
			</parameters>
		</method>
	</class>
	<record name="MediaRendererPluginClass" c:type="RygelMediaRendererPluginClass" glib:is-gtype-struct-for="MediaRendererPlugin">
		<field name="parent_class">
			<type name="RygelCore.PluginClass" c:type="RygelPluginClass"/>
		</field>
				<field name="get_player">
			<callback name="get_player" c:type="get_player">
				<return-value transfer-ownership="full" allow-none="1">
					<type name="RygelRenderer.MediaPlayer" c:type="RygelMediaPlayer*"/>
				</return-value>
				<parameters>
					<parameter name="self" transfer-ownership="none">
						<type name="RygelRenderer.MediaRendererPlugin" c:type="RygelMediaRendererPlugin*"/>
					</parameter>
				</parameters>
			</callback>
		</field>
				<field name="get_controller">
			<callback name="get_controller" c:type="get_controller">
				<return-value transfer-ownership="full">
					<type name="RygelRenderer.PlayerController" c:type="RygelPlayerController*"/>
				</return-value>
				<parameters>
					<parameter name="self" transfer-ownership="none">
						<type name="RygelRenderer.MediaRendererPlugin" c:type="RygelMediaRendererPlugin*"/>
					</parameter>
				</parameters>
			</callback>
		</field>
	</record>
	<record name="MediaRendererPluginPrivate" c:type="RygelMediaRendererPluginPrivate" disguised="1"/>
	<class name="MediaRenderer" c:type="RygelMediaRenderer" glib:type-name="RygelMediaRenderer" glib:get-type="rygel_media_renderer_get_type" glib:type-struct="MediaRendererClass" parent="RygelCore.MediaDevice">
		<field name="parent_instance">
			<type name="RygelCore.MediaDevice" c:type="RygelMediaDevice"/>
		</field>
		<field name="priv">
			<type name="MediaRendererPrivate" c:type="RygelMediaRendererPrivate*"/>
		</field>
		<constructor name="new" c:identifier="rygel_media_renderer_new">
			<return-value transfer-ownership="full">
				<type name="RygelRenderer.MediaRenderer" c:type="RygelMediaRenderer*"/>
			</return-value>
			<parameters>
				<parameter name="title" transfer-ownership="none">
					<type name="utf8" c:type="const gchar*"/>
				</parameter>
				<parameter name="player" transfer-ownership="none">
					<type name="RygelRenderer.MediaPlayer" c:type="RygelMediaPlayer*"/>
				</parameter>
				<parameter name="capabilities" transfer-ownership="none">
					<type name="RygelCore.PluginCapabilities" c:type="RygelPluginCapabilities"/>
				</parameter>
			</parameters>
		</constructor>
		<property name="player" writable="1" construct-only="1">
			<type name="RygelRenderer.MediaPlayer" c:type="RygelMediaPlayer*"/>
		</property>
	</class>
	<record name="MediaRendererClass" c:type="RygelMediaRendererClass" glib:is-gtype-struct-for="MediaRenderer">
		<field name="parent_class">
			<type name="RygelCore.MediaDeviceClass" c:type="RygelMediaDeviceClass"/>
		</field>
	</record>
	<record name="MediaRendererPrivate" c:type="RygelMediaRendererPrivate" disguised="1"/>
	<interface name="MediaPlayer" c:type="RygelMediaPlayer" glib:type-name="RygelMediaPlayer" glib:get-type="rygel_media_player_get_type" glib:type-struct="MediaPlayerIface">
		<prerequisite name="GObject.Object"/>
		<method name="seek" c:identifier="rygel_media_player_seek">
			<return-value transfer-ownership="full">
				<type name="gboolean" c:type="gboolean"/>
			</return-value>
			<parameters>
				<parameter name="time" transfer-ownership="none">
					<type name="gint64" c:type="gint64"/>
				</parameter>
			</parameters>
		</method>
		<virtual-method name="seek" invoker="seek">
			<return-value transfer-ownership="full">
				<type name="gboolean" c:type="gboolean"/>
			</return-value>
			<parameters>
				<parameter name="time" transfer-ownership="none">
					<type name="gint64" c:type="gint64"/>
				</parameter>
			</parameters>
		</virtual-method>
		<method name="seek_bytes" c:identifier="rygel_media_player_seek_bytes">
			<return-value transfer-ownership="full">
				<type name="gboolean" c:type="gboolean"/>
			</return-value>
			<parameters>
				<parameter name="bytes" transfer-ownership="none">
					<type name="gint64" c:type="gint64"/>
				</parameter>
			</parameters>
		</method>
		<virtual-method name="seek_bytes" invoker="seek_bytes">
			<return-value transfer-ownership="full">
				<type name="gboolean" c:type="gboolean"/>
			</return-value>
			<parameters>
				<parameter name="bytes" transfer-ownership="none">
					<type name="gint64" c:type="gint64"/>
				</parameter>
			</parameters>
		</virtual-method>
		<method name="get_protocols" c:identifier="rygel_media_player_get_protocols">
			<return-value transfer-ownership="full">
				<array length="0">
					<type name="utf8" c:type="gchar*"/>
				</array>
			</return-value>
			<parameters>
				<parameter name="result_length1" direction="out" transfer-ownership="none">
					<type name="gint" c:type="gint*"/>
				</parameter>
			</parameters>
		</method>
		<virtual-method name="get_protocols" invoker="get_protocols">
			<return-value transfer-ownership="full">
				<array length="0">
					<type name="utf8" c:type="gchar*"/>
				</array>
			</return-value>
			<parameters>
				<parameter name="result_length1" direction="out" transfer-ownership="none">
					<type name="gint" c:type="gint*"/>
				</parameter>
			</parameters>
		</virtual-method>
		<method name="get_mime_types" c:identifier="rygel_media_player_get_mime_types">
			<return-value transfer-ownership="full">
				<array length="0">
					<type name="utf8" c:type="gchar*"/>
				</array>
			</return-value>
			<parameters>
				<parameter name="result_length1" direction="out" transfer-ownership="none">
					<type name="gint" c:type="gint*"/>
				</parameter>
			</parameters>
		</method>
		<virtual-method name="get_mime_types" invoker="get_mime_types">
			<return-value transfer-ownership="full">
				<array length="0">
					<type name="utf8" c:type="gchar*"/>
				</array>
			</return-value>
			<parameters>
				<parameter name="result_length1" direction="out" transfer-ownership="none">
					<type name="gint" c:type="gint*"/>
				</parameter>
			</parameters>
		</virtual-method>
		<method name="play_speed_to_double" c:identifier="rygel_media_player_play_speed_to_double">
			<return-value transfer-ownership="full">
				<type name="gdouble" c:type="gdouble"/>
			</return-value>
			<parameters>
				<parameter name="speed" transfer-ownership="none">
					<type name="utf8" c:type="const gchar*"/>
				</parameter>
			</parameters>
		</method>
		<property name="playback-state" writable="1">
			<type name="utf8" c:type="gchar*"/>
		</property>
		<method name="get_playback_state" c:identifier="rygel_media_player_get_playback_state">
			<return-value transfer-ownership="full">
				<type name="utf8" c:type="gchar*"/>
			</return-value>
		</method>
		<virtual-method name="get_playback_state" invoker="get_playback_state">
			<return-value transfer-ownership="full">
				<type name="utf8" c:type="gchar*"/>
			</return-value>
		</virtual-method>
		<method name="set_playback_state" c:identifier="rygel_media_player_set_playback_state">
			<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>
		<virtual-method name="set_playback_state" invoker="set_playback_state">
			<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>
		</virtual-method>
		<property name="allowed-playback-speeds">
			<array>
				<type name="utf8" c:type="gchar*"/>
			</array>
		</property>
		<method name="get_allowed_playback_speeds" c:identifier="rygel_media_player_get_allowed_playback_speeds">
			<return-value transfer-ownership="full">
				<array length="0">
					<type name="utf8" c:type="gchar*"/>
				</array>
			</return-value>
			<parameters>
				<parameter name="result_length1" direction="out" transfer-ownership="none">
					<type name="gint" c:type="gint*"/>
				</parameter>
			</parameters>
		</method>
		<virtual-method name="get_allowed_playback_speeds" invoker="get_allowed_playback_speeds">
			<return-value transfer-ownership="full">
				<array length="0">
					<type name="utf8" c:type="gchar*"/>
				</array>
			</return-value>
			<parameters>
				<parameter name="result_length1" direction="out" transfer-ownership="none">
					<type name="gint" c:type="gint*"/>
				</parameter>
			</parameters>
		</virtual-method>
		<property name="playback-speed" writable="1">
			<type name="utf8" c:type="gchar*"/>
		</property>
		<method name="get_playback_speed" c:identifier="rygel_media_player_get_playback_speed">
			<return-value transfer-ownership="full">
				<type name="utf8" c:type="gchar*"/>
			</return-value>
		</method>
		<virtual-method name="get_playback_speed" invoker="get_playback_speed">
			<return-value transfer-ownership="full">
				<type name="utf8" c:type="gchar*"/>
			</return-value>
		</virtual-method>
		<method name="set_playback_speed" c:identifier="rygel_media_player_set_playback_speed">
			<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>
		<virtual-method name="set_playback_speed" invoker="set_playback_speed">
			<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>
		</virtual-method>
		<property name="uri" writable="1">
			<type name="utf8" c:type="gchar*"/>
		</property>
		<method name="get_uri" c:identifier="rygel_media_player_get_uri">
			<return-value transfer-ownership="full" allow-none="1">
				<type name="utf8" c:type="gchar*"/>
			</return-value>
		</method>
		<virtual-method name="get_uri" invoker="get_uri">
			<return-value transfer-ownership="full" allow-none="1">
				<type name="utf8" c:type="gchar*"/>
			</return-value>
		</virtual-method>
		<method name="set_uri" c:identifier="rygel_media_player_set_uri">
			<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>
		<virtual-method name="set_uri" invoker="set_uri">
			<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>
		</virtual-method>
		<property name="volume" writable="1">
			<type name="gdouble" c:type="gdouble"/>
		</property>
		<method name="get_volume" c:identifier="rygel_media_player_get_volume">
			<return-value transfer-ownership="none">
				<type name="gdouble" c:type="gdouble"/>
			</return-value>
		</method>
		<virtual-method name="get_volume" invoker="get_volume">
			<return-value transfer-ownership="none">
				<type name="gdouble" c:type="gdouble"/>
			</return-value>
		</virtual-method>
		<method name="set_volume" c:identifier="rygel_media_player_set_volume">
			<return-value transfer-ownership="none">
				<type name="none"/>
			</return-value>
			<parameters>
				<parameter name="value" transfer-ownership="none">
					<type name="gdouble" c:type="gdouble"/>
				</parameter>
			</parameters>
		</method>
		<virtual-method name="set_volume" invoker="set_volume">
			<return-value transfer-ownership="none">
				<type name="none"/>
			</return-value>
			<parameters>
				<parameter name="value" transfer-ownership="none">
					<type name="gdouble" c:type="gdouble"/>
				</parameter>
			</parameters>
		</virtual-method>
		<property name="duration">
			<type name="gint64" c:type="gint64"/>
		</property>
		<method name="get_duration" c:identifier="rygel_media_player_get_duration">
			<return-value transfer-ownership="none">
				<type name="gint64" c:type="gint64"/>
			</return-value>
		</method>
		<virtual-method name="get_duration" invoker="get_duration">
			<return-value transfer-ownership="none">
				<type name="gint64" c:type="gint64"/>
			</return-value>
		</virtual-method>
		<property name="size">
			<type name="gint64" c:type="gint64"/>
		</property>
		<method name="get_size" c:identifier="rygel_media_player_get_size">
			<return-value transfer-ownership="none">
				<type name="gint64" c:type="gint64"/>
			</return-value>
		</method>
		<virtual-method name="get_size" invoker="get_size">
			<return-value transfer-ownership="none">
				<type name="gint64" c:type="gint64"/>
			</return-value>
		</virtual-method>
		<property name="metadata" writable="1">
			<type name="utf8" c:type="gchar*"/>
		</property>
		<method name="get_metadata" c:identifier="rygel_media_player_get_metadata">
			<return-value transfer-ownership="full" allow-none="1">
				<type name="utf8" c:type="gchar*"/>
			</return-value>
		</method>
		<virtual-method name="get_metadata" invoker="get_metadata">
			<return-value transfer-ownership="full" allow-none="1">
				<type name="utf8" c:type="gchar*"/>
			</return-value>
		</virtual-method>
		<method name="set_metadata" c:identifier="rygel_media_player_set_metadata">
			<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>
		<virtual-method name="set_metadata" invoker="set_metadata">
			<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>
		</virtual-method>
		<property name="mime-type" writable="1">
			<type name="utf8" c:type="gchar*"/>
		</property>
		<method name="get_mime_type" c:identifier="rygel_media_player_get_mime_type">
			<return-value transfer-ownership="full" allow-none="1">
				<type name="utf8" c:type="gchar*"/>
			</return-value>
		</method>
		<virtual-method name="get_mime_type" invoker="get_mime_type">
			<return-value transfer-ownership="full" allow-none="1">
				<type name="utf8" c:type="gchar*"/>
			</return-value>
		</virtual-method>
		<method name="set_mime_type" c:identifier="rygel_media_player_set_mime_type">
			<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>
		<virtual-method name="set_mime_type" invoker="set_mime_type">
			<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>
		</virtual-method>
		<property name="can-seek">
			<type name="gboolean" c:type="gboolean"/>
		</property>
		<method name="get_can_seek" c:identifier="rygel_media_player_get_can_seek">
			<return-value transfer-ownership="none">
				<type name="gboolean" c:type="gboolean"/>
			</return-value>
		</method>
		<virtual-method name="get_can_seek" invoker="get_can_seek">
			<return-value transfer-ownership="none">
				<type name="gboolean" c:type="gboolean"/>
			</return-value>
		</virtual-method>
		<property name="can-seek-bytes">
			<type name="gboolean" c:type="gboolean"/>
		</property>
		<method name="get_can_seek_bytes" c:identifier="rygel_media_player_get_can_seek_bytes">
			<return-value transfer-ownership="none">
				<type name="gboolean" c:type="gboolean"/>
			</return-value>
		</method>
		<virtual-method name="get_can_seek_bytes" invoker="get_can_seek_bytes">
			<return-value transfer-ownership="none">
				<type name="gboolean" c:type="gboolean"/>
			</return-value>
		</virtual-method>
		<property name="content-features" writable="1">
			<type name="utf8" c:type="gchar*"/>
		</property>
		<method name="get_content_features" c:identifier="rygel_media_player_get_content_features">
			<return-value transfer-ownership="full" allow-none="1">
				<type name="utf8" c:type="gchar*"/>
			</return-value>
		</method>
		<virtual-method name="get_content_features" invoker="get_content_features">
			<return-value transfer-ownership="full" allow-none="1">
				<type name="utf8" c:type="gchar*"/>
			</return-value>
		</virtual-method>
		<method name="set_content_features" c:identifier="rygel_media_player_set_content_features">
			<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>
		<virtual-method name="set_content_features" invoker="set_content_features">
			<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>
		</virtual-method>
		<property name="duration-as-str">
			<type name="utf8" c:type="gchar*"/>
		</property>
		<method name="get_duration_as_str" c:identifier="rygel_media_player_get_duration_as_str">
			<return-value transfer-ownership="full">
				<type name="utf8" c:type="gchar*"/>
			</return-value>
		</method>
		<property name="position">
			<type name="gint64" c:type="gint64"/>
		</property>
		<method name="get_position" c:identifier="rygel_media_player_get_position">
			<return-value transfer-ownership="none">
				<type name="gint64" c:type="gint64"/>
			</return-value>
		</method>
		<virtual-method name="get_position" invoker="get_position">
			<return-value transfer-ownership="none">
				<type name="gint64" c:type="gint64"/>
			</return-value>
		</virtual-method>
		<property name="byte-position">
			<type name="gint64" c:type="gint64"/>
		</property>
		<method name="get_byte_position" c:identifier="rygel_media_player_get_byte_position">
			<return-value transfer-ownership="none">
				<type name="gint64" c:type="gint64"/>
			</return-value>
		</method>
		<virtual-method name="get_byte_position" invoker="get_byte_position">
			<return-value transfer-ownership="none">
				<type name="gint64" c:type="gint64"/>
			</return-value>
		</virtual-method>
		<property name="position-as-str">
			<type name="utf8" c:type="gchar*"/>
		</property>
		<method name="get_position_as_str" c:identifier="rygel_media_player_get_position_as_str">
			<return-value transfer-ownership="full">
				<type name="utf8" c:type="gchar*"/>
			</return-value>
		</method>
		<property name="user-agent" writable="1">
			<type name="utf8" c:type="gchar*"/>
		</property>
		<method name="get_user_agent" c:identifier="rygel_media_player_get_user_agent">
			<return-value transfer-ownership="full" allow-none="1">
				<type name="utf8" c:type="gchar*"/>
			</return-value>
		</method>
		<virtual-method name="get_user_agent" invoker="get_user_agent">
			<return-value transfer-ownership="full" allow-none="1">
				<type name="utf8" c:type="gchar*"/>
			</return-value>
		</virtual-method>
		<method name="set_user_agent" c:identifier="rygel_media_player_set_user_agent">
			<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>
		<virtual-method name="set_user_agent" invoker="set_user_agent">
			<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>
		</virtual-method>
		<property name="protocol-info">
			<type name="utf8" c:type="gchar*"/>
		</property>
		<method name="get_protocol_info" c:identifier="rygel_media_player_get_protocol_info">
			<return-value transfer-ownership="full">
				<type name="utf8" c:type="gchar*"/>
			</return-value>
		</method>
	</interface>
	<record name="MediaPlayerIface" c:type="RygelMediaPlayerIface" glib:is-gtype-struct-for="MediaPlayer">
		<field name="parent_iface">
			<type name="GObject.TypeInterface" c:type="GTypeInterface"/>
		</field>
		<field name="seek">
			<callback name="seek" c:type="seek">
				<return-value transfer-ownership="full">
					<type name="gboolean" c:type="gboolean"/>
				</return-value>
				<parameters>
					<parameter name="self" transfer-ownership="none">
						<type name="RygelRenderer.MediaPlayer" c:type="RygelMediaPlayer*"/>
					</parameter>
					<parameter name="time" transfer-ownership="none">
						<type name="gint64" c:type="gint64"/>
					</parameter>
				</parameters>
			</callback>
		</field>
		<field name="seek_bytes">
			<callback name="seek_bytes" c:type="seek_bytes">
				<return-value transfer-ownership="full">
					<type name="gboolean" c:type="gboolean"/>
				</return-value>
				<parameters>
					<parameter name="self" transfer-ownership="none">
						<type name="RygelRenderer.MediaPlayer" c:type="RygelMediaPlayer*"/>
					</parameter>
					<parameter name="bytes" transfer-ownership="none">
						<type name="gint64" c:type="gint64"/>
					</parameter>
				</parameters>
			</callback>
		</field>
		<field name="get_protocols">
			<callback name="get_protocols" c:type="get_protocols">
				<return-value transfer-ownership="full">
					<array length="1">
						<type name="utf8" c:type="gchar*"/>
					</array>
				</return-value>
				<parameters>
					<parameter name="self" transfer-ownership="none">
						<type name="RygelRenderer.MediaPlayer" c:type="RygelMediaPlayer*"/>
					</parameter>
					<parameter name="result_length1" direction="out" transfer-ownership="none">
						<type name="gint" c:type="gint*"/>
					</parameter>
				</parameters>
			</callback>
		</field>
		<field name="get_mime_types">
			<callback name="get_mime_types" c:type="get_mime_types">
				<return-value transfer-ownership="full">
					<array length="1">
						<type name="utf8" c:type="gchar*"/>
					</array>
				</return-value>
				<parameters>
					<parameter name="self" transfer-ownership="none">
						<type name="RygelRenderer.MediaPlayer" c:type="RygelMediaPlayer*"/>
					</parameter>
					<parameter name="result_length1" direction="out" transfer-ownership="none">
						<type name="gint" c:type="gint*"/>
					</parameter>
				</parameters>
			</callback>
		</field>
		<field name="get_playback_state">
			<callback name="get_playback_state" c:type="get_playback_state">
				<return-value transfer-ownership="full">
					<type name="utf8" c:type="gchar*"/>
				</return-value>
				<parameters>
					<parameter name="self" transfer-ownership="none">
						<type name="RygelRenderer.MediaPlayer" c:type="RygelMediaPlayer*"/>
					</parameter>
				</parameters>
			</callback>
		</field>
		<field name="set_playback_state">
			<callback name="set_playback_state" c:type="set_playback_state">
				<return-value transfer-ownership="none">
					<type name="none"/>
				</return-value>
				<parameters>
					<parameter name="self" transfer-ownership="none">
						<type name="RygelRenderer.MediaPlayer" c:type="RygelMediaPlayer*"/>
					</parameter>
					<parameter name="value" transfer-ownership="none">
						<type name="utf8" c:type="const gchar*"/>
					</parameter>
				</parameters>
			</callback>
		</field>
		<field name="get_allowed_playback_speeds">
			<callback name="get_allowed_playback_speeds" c:type="get_allowed_playback_speeds">
				<return-value transfer-ownership="full">
					<array length="1">
						<type name="utf8" c:type="gchar*"/>
					</array>
				</return-value>
				<parameters>
					<parameter name="self" transfer-ownership="none">
						<type name="RygelRenderer.MediaPlayer" c:type="RygelMediaPlayer*"/>
					</parameter>
					<parameter name="result_length1" direction="out" transfer-ownership="none">
						<type name="gint" c:type="gint*"/>
					</parameter>
				</parameters>
			</callback>
		</field>
		<field name="get_playback_speed">
			<callback name="get_playback_speed" c:type="get_playback_speed">
				<return-value transfer-ownership="full">
					<type name="utf8" c:type="gchar*"/>
				</return-value>
				<parameters>
					<parameter name="self" transfer-ownership="none">
						<type name="RygelRenderer.MediaPlayer" c:type="RygelMediaPlayer*"/>
					</parameter>
				</parameters>
			</callback>
		</field>
		<field name="set_playback_speed">
			<callback name="set_playback_speed" c:type="set_playback_speed">
				<return-value transfer-ownership="none">
					<type name="none"/>
				</return-value>
				<parameters>
					<parameter name="self" transfer-ownership="none">
						<type name="RygelRenderer.MediaPlayer" c:type="RygelMediaPlayer*"/>
					</parameter>
					<parameter name="value" transfer-ownership="none">
						<type name="utf8" c:type="const gchar*"/>
					</parameter>
				</parameters>
			</callback>
		</field>
		<field name="get_uri">
			<callback name="get_uri" c:type="get_uri">
				<return-value transfer-ownership="full" allow-none="1">
					<type name="utf8" c:type="gchar*"/>
				</return-value>
				<parameters>
					<parameter name="self" transfer-ownership="none">
						<type name="RygelRenderer.MediaPlayer" c:type="RygelMediaPlayer*"/>
					</parameter>
				</parameters>
			</callback>
		</field>
		<field name="set_uri">
			<callback name="set_uri" c:type="set_uri">
				<return-value transfer-ownership="none">
					<type name="none"/>
				</return-value>
				<parameters>
					<parameter name="self" transfer-ownership="none">
						<type name="RygelRenderer.MediaPlayer" c:type="RygelMediaPlayer*"/>
					</parameter>
					<parameter name="value" transfer-ownership="none" allow-none="1">
						<type name="utf8" c:type="const gchar*"/>
					</parameter>
				</parameters>
			</callback>
		</field>
		<field name="get_volume">
			<callback name="get_volume" c:type="get_volume">
				<return-value transfer-ownership="none">
					<type name="gdouble" c:type="gdouble"/>
				</return-value>
				<parameters>
					<parameter name="self" transfer-ownership="none">
						<type name="RygelRenderer.MediaPlayer" c:type="RygelMediaPlayer*"/>
					</parameter>
				</parameters>
			</callback>
		</field>
		<field name="set_volume">
			<callback name="set_volume" c:type="set_volume">
				<return-value transfer-ownership="none">
					<type name="none"/>
				</return-value>
				<parameters>
					<parameter name="self" transfer-ownership="none">
						<type name="RygelRenderer.MediaPlayer" c:type="RygelMediaPlayer*"/>
					</parameter>
					<parameter name="value" transfer-ownership="none">
						<type name="gdouble" c:type="gdouble"/>
					</parameter>
				</parameters>
			</callback>
		</field>
		<field name="get_duration">
			<callback name="get_duration" c:type="get_duration">
				<return-value transfer-ownership="none">
					<type name="gint64" c:type="gint64"/>
				</return-value>
				<parameters>
					<parameter name="self" transfer-ownership="none">
						<type name="RygelRenderer.MediaPlayer" c:type="RygelMediaPlayer*"/>
					</parameter>
				</parameters>
			</callback>
		</field>
		<field name="get_size">
			<callback name="get_size" c:type="get_size">
				<return-value transfer-ownership="none">
					<type name="gint64" c:type="gint64"/>
				</return-value>
				<parameters>
					<parameter name="self" transfer-ownership="none">
						<type name="RygelRenderer.MediaPlayer" c:type="RygelMediaPlayer*"/>
					</parameter>
				</parameters>
			</callback>
		</field>
		<field name="get_metadata">
			<callback name="get_metadata" c:type="get_metadata">
				<return-value transfer-ownership="full" allow-none="1">
					<type name="utf8" c:type="gchar*"/>
				</return-value>
				<parameters>
					<parameter name="self" transfer-ownership="none">
						<type name="RygelRenderer.MediaPlayer" c:type="RygelMediaPlayer*"/>
					</parameter>
				</parameters>
			</callback>
		</field>
		<field name="set_metadata">
			<callback name="set_metadata" c:type="set_metadata">
				<return-value transfer-ownership="none">
					<type name="none"/>
				</return-value>
				<parameters>
					<parameter name="self" transfer-ownership="none">
						<type name="RygelRenderer.MediaPlayer" c:type="RygelMediaPlayer*"/>
					</parameter>
					<parameter name="value" transfer-ownership="none" allow-none="1">
						<type name="utf8" c:type="const gchar*"/>
					</parameter>
				</parameters>
			</callback>
		</field>
		<field name="get_mime_type">
			<callback name="get_mime_type" c:type="get_mime_type">
				<return-value transfer-ownership="full" allow-none="1">
					<type name="utf8" c:type="gchar*"/>
				</return-value>
				<parameters>
					<parameter name="self" transfer-ownership="none">
						<type name="RygelRenderer.MediaPlayer" c:type="RygelMediaPlayer*"/>
					</parameter>
				</parameters>
			</callback>
		</field>
		<field name="set_mime_type">
			<callback name="set_mime_type" c:type="set_mime_type">
				<return-value transfer-ownership="none">
					<type name="none"/>
				</return-value>
				<parameters>
					<parameter name="self" transfer-ownership="none">
						<type name="RygelRenderer.MediaPlayer" c:type="RygelMediaPlayer*"/>
					</parameter>
					<parameter name="value" transfer-ownership="none" allow-none="1">
						<type name="utf8" c:type="const gchar*"/>
					</parameter>
				</parameters>
			</callback>
		</field>
		<field name="get_can_seek">
			<callback name="get_can_seek" c:type="get_can_seek">
				<return-value transfer-ownership="none">
					<type name="gboolean" c:type="gboolean"/>
				</return-value>
				<parameters>
					<parameter name="self" transfer-ownership="none">
						<type name="RygelRenderer.MediaPlayer" c:type="RygelMediaPlayer*"/>
					</parameter>
				</parameters>
			</callback>
		</field>
		<field name="get_can_seek_bytes">
			<callback name="get_can_seek_bytes" c:type="get_can_seek_bytes">
				<return-value transfer-ownership="none">
					<type name="gboolean" c:type="gboolean"/>
				</return-value>
				<parameters>
					<parameter name="self" transfer-ownership="none">
						<type name="RygelRenderer.MediaPlayer" c:type="RygelMediaPlayer*"/>
					</parameter>
				</parameters>
			</callback>
		</field>
		<field name="get_content_features">
			<callback name="get_content_features" c:type="get_content_features">
				<return-value transfer-ownership="full" allow-none="1">
					<type name="utf8" c:type="gchar*"/>
				</return-value>
				<parameters>
					<parameter name="self" transfer-ownership="none">
						<type name="RygelRenderer.MediaPlayer" c:type="RygelMediaPlayer*"/>
					</parameter>
				</parameters>
			</callback>
		</field>
		<field name="set_content_features">
			<callback name="set_content_features" c:type="set_content_features">
				<return-value transfer-ownership="none">
					<type name="none"/>
				</return-value>
				<parameters>
					<parameter name="self" transfer-ownership="none">
						<type name="RygelRenderer.MediaPlayer" c:type="RygelMediaPlayer*"/>
					</parameter>
					<parameter name="value" transfer-ownership="none" allow-none="1">
						<type name="utf8" c:type="const gchar*"/>
					</parameter>
				</parameters>
			</callback>
		</field>
		<field name="get_position">
			<callback name="get_position" c:type="get_position">
				<return-value transfer-ownership="none">
					<type name="gint64" c:type="gint64"/>
				</return-value>
				<parameters>
					<parameter name="self" transfer-ownership="none">
						<type name="RygelRenderer.MediaPlayer" c:type="RygelMediaPlayer*"/>
					</parameter>
				</parameters>
			</callback>
		</field>
		<field name="get_byte_position">
			<callback name="get_byte_position" c:type="get_byte_position">
				<return-value transfer-ownership="none">
					<type name="gint64" c:type="gint64"/>
				</return-value>
				<parameters>
					<parameter name="self" transfer-ownership="none">
						<type name="RygelRenderer.MediaPlayer" c:type="RygelMediaPlayer*"/>
					</parameter>
				</parameters>
			</callback>
		</field>
		<field name="get_user_agent">
			<callback name="get_user_agent" c:type="get_user_agent">
				<return-value transfer-ownership="full" allow-none="1">
					<type name="utf8" c:type="gchar*"/>
				</return-value>
				<parameters>
					<parameter name="self" transfer-ownership="none">
						<type name="RygelRenderer.MediaPlayer" c:type="RygelMediaPlayer*"/>
					</parameter>
				</parameters>
			</callback>
		</field>
		<field name="set_user_agent">
			<callback name="set_user_agent" c:type="set_user_agent">
				<return-value transfer-ownership="none">
					<type name="none"/>
				</return-value>
				<parameters>
					<parameter name="self" transfer-ownership="none">
						<type name="RygelRenderer.MediaPlayer" c:type="RygelMediaPlayer*"/>
					</parameter>
					<parameter name="value" transfer-ownership="none" allow-none="1">
						<type name="utf8" c:type="const gchar*"/>
					</parameter>
				</parameters>
			</callback>
		</field>
	</record>
	<interface name="PlayerController" c:type="RygelPlayerController" glib:type-name="RygelPlayerController" glib:get-type="rygel_player_controller_get_type" glib:type-struct="PlayerControllerIface">
		<prerequisite name="GObject.Object"/>
		<method name="next" c:identifier="rygel_player_controller_next">
			<return-value transfer-ownership="full">
				<type name="gboolean" c:type="gboolean"/>
			</return-value>
		</method>
		<virtual-method name="next" invoker="next">
			<return-value transfer-ownership="full">
				<type name="gboolean" c:type="gboolean"/>
			</return-value>
		</virtual-method>
		<method name="previous" c:identifier="rygel_player_controller_previous">
			<return-value transfer-ownership="full">
				<type name="gboolean" c:type="gboolean"/>
			</return-value>
		</method>
		<virtual-method name="previous" invoker="previous">
			<return-value transfer-ownership="full">
				<type name="gboolean" c:type="gboolean"/>
			</return-value>
		</virtual-method>
		<method name="set_single_play_uri" c:identifier="rygel_player_controller_set_single_play_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>
				<parameter name="metadata" transfer-ownership="none">
					<type name="utf8" c:type="const gchar*"/>
				</parameter>
				<parameter name="mime" transfer-ownership="none" allow-none="1">
					<type name="utf8" c:type="const gchar*"/>
				</parameter>
				<parameter name="features" transfer-ownership="none" allow-none="1">
					<type name="utf8" c:type="const gchar*"/>
				</parameter>
			</parameters>
		</method>
		<virtual-method name="set_single_play_uri" invoker="set_single_play_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>
				<parameter name="metadata" transfer-ownership="none">
					<type name="utf8" c:type="const gchar*"/>
				</parameter>
				<parameter name="mime" transfer-ownership="none" allow-none="1">
					<type name="utf8" c:type="const gchar*"/>
				</parameter>
				<parameter name="features" transfer-ownership="none" allow-none="1">
					<type name="utf8" c:type="const gchar*"/>
				</parameter>
			</parameters>
		</virtual-method>
		<method name="set_playlist_uri" c:identifier="rygel_player_controller_set_playlist_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>
				<parameter name="metadata" transfer-ownership="none">
					<type name="utf8" c:type="const gchar*"/>
				</parameter>
				<parameter name="collection" transfer-ownership="none">
					<type name="GUPnPAV.MediaCollection" c:type="GUPnPMediaCollection*"/>
				</parameter>
			</parameters>
		</method>
		<virtual-method name="set_playlist_uri" invoker="set_playlist_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>
				<parameter name="metadata" transfer-ownership="none">
					<type name="utf8" c:type="const gchar*"/>
				</parameter>
				<parameter name="collection" transfer-ownership="none">
					<type name="GUPnPAV.MediaCollection" c:type="GUPnPMediaCollection*"/>
				</parameter>
			</parameters>
		</virtual-method>
		<method name="set_next_single_play_uri" c:identifier="rygel_player_controller_set_next_single_play_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>
				<parameter name="metadata" transfer-ownership="none">
					<type name="utf8" c:type="const gchar*"/>
				</parameter>
				<parameter name="mime" transfer-ownership="none" allow-none="1">
					<type name="utf8" c:type="const gchar*"/>
				</parameter>
				<parameter name="features" transfer-ownership="none" allow-none="1">
					<type name="utf8" c:type="const gchar*"/>
				</parameter>
			</parameters>
		</method>
		<virtual-method name="set_next_single_play_uri" invoker="set_next_single_play_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>
				<parameter name="metadata" transfer-ownership="none">
					<type name="utf8" c:type="const gchar*"/>
				</parameter>
				<parameter name="mime" transfer-ownership="none" allow-none="1">
					<type name="utf8" c:type="const gchar*"/>
				</parameter>
				<parameter name="features" transfer-ownership="none" allow-none="1">
					<type name="utf8" c:type="const gchar*"/>
				</parameter>
			</parameters>
		</virtual-method>
		<method name="set_next_playlist_uri" c:identifier="rygel_player_controller_set_next_playlist_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>
				<parameter name="metadata" transfer-ownership="none">
					<type name="utf8" c:type="const gchar*"/>
				</parameter>
				<parameter name="collection" transfer-ownership="none">
					<type name="GUPnPAV.MediaCollection" c:type="GUPnPMediaCollection*"/>
				</parameter>
			</parameters>
		</method>
		<virtual-method name="set_next_playlist_uri" invoker="set_next_playlist_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>
				<parameter name="metadata" transfer-ownership="none">
					<type name="utf8" c:type="const gchar*"/>
				</parameter>
				<parameter name="collection" transfer-ownership="none">
					<type name="GUPnPAV.MediaCollection" c:type="GUPnPMediaCollection*"/>
				</parameter>
			</parameters>
		</virtual-method>
		<method name="is_play_mode_valid" c:identifier="rygel_player_controller_is_play_mode_valid">
			<return-value transfer-ownership="full">
				<type name="gboolean" c:type="gboolean"/>
			</return-value>
			<parameters>
				<parameter name="play_mode" transfer-ownership="none">
					<type name="utf8" c:type="const gchar*"/>
				</parameter>
			</parameters>
		</method>
		<virtual-method name="is_play_mode_valid" invoker="is_play_mode_valid">
			<return-value transfer-ownership="full">
				<type name="gboolean" c:type="gboolean"/>
			</return-value>
			<parameters>
				<parameter name="play_mode" transfer-ownership="none">
					<type name="utf8" c:type="const gchar*"/>
				</parameter>
			</parameters>
		</virtual-method>
		<method name="unescape" c:identifier="rygel_player_controller_unescape">
			<return-value transfer-ownership="full">
				<type name="utf8" c:type="gchar*"/>
			</return-value>
			<parameters>
				<parameter name="input" transfer-ownership="none">
					<type name="utf8" c:type="const gchar*"/>
				</parameter>
			</parameters>
		</method>
		<property name="playback-state" writable="1">
			<type name="utf8" c:type="gchar*"/>
		</property>
		<method name="get_playback_state" c:identifier="rygel_player_controller_get_playback_state">
			<return-value transfer-ownership="none">
				<type name="utf8" c:type="const gchar*"/>
			</return-value>
		</method>
		<virtual-method name="get_playback_state" invoker="get_playback_state">
			<return-value transfer-ownership="none">
				<type name="utf8" c:type="const gchar*"/>
			</return-value>
		</virtual-method>
		<method name="set_playback_state" c:identifier="rygel_player_controller_set_playback_state">
			<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>
		<virtual-method name="set_playback_state" invoker="set_playback_state">
			<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>
		</virtual-method>
		<property name="n-tracks" writable="1">
			<type name="guint" c:type="guint"/>
		</property>
		<method name="get_n_tracks" c:identifier="rygel_player_controller_get_n_tracks">
			<return-value transfer-ownership="none">
				<type name="guint" c:type="guint"/>
			</return-value>
		</method>
		<virtual-method name="get_n_tracks" invoker="get_n_tracks">
			<return-value transfer-ownership="none">
				<type name="guint" c:type="guint"/>
			</return-value>
		</virtual-method>
		<method name="set_n_tracks" c:identifier="rygel_player_controller_set_n_tracks">
			<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>
		<virtual-method name="set_n_tracks" invoker="set_n_tracks">
			<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>
		</virtual-method>
		<property name="track" writable="1">
			<type name="guint" c:type="guint"/>
		</property>
		<method name="get_track" c:identifier="rygel_player_controller_get_track">
			<return-value transfer-ownership="none">
				<type name="guint" c:type="guint"/>
			</return-value>
		</method>
		<virtual-method name="get_track" invoker="get_track">
			<return-value transfer-ownership="none">
				<type name="guint" c:type="guint"/>
			</return-value>
		</virtual-method>
		<method name="set_track" c:identifier="rygel_player_controller_set_track">
			<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>
		<virtual-method name="set_track" invoker="set_track">
			<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>
		</virtual-method>
		<property name="uri" writable="1">
			<type name="utf8" c:type="gchar*"/>
		</property>
		<method name="get_uri" c:identifier="rygel_player_controller_get_uri">
			<return-value transfer-ownership="full">
				<type name="utf8" c:type="gchar*"/>
			</return-value>
		</method>
		<virtual-method name="get_uri" invoker="get_uri">
			<return-value transfer-ownership="full">
				<type name="utf8" c:type="gchar*"/>
			</return-value>
		</virtual-method>
		<method name="set_uri" c:identifier="rygel_player_controller_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>
		<virtual-method name="set_uri" invoker="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>
		</virtual-method>
		<property name="metadata" writable="1">
			<type name="utf8" c:type="gchar*"/>
		</property>
		<method name="get_metadata" c:identifier="rygel_player_controller_get_metadata">
			<return-value transfer-ownership="full">
				<type name="utf8" c:type="gchar*"/>
			</return-value>
		</method>
		<virtual-method name="get_metadata" invoker="get_metadata">
			<return-value transfer-ownership="full">
				<type name="utf8" c:type="gchar*"/>
			</return-value>
		</virtual-method>
		<method name="set_metadata" c:identifier="rygel_player_controller_set_metadata">
			<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>
		<virtual-method name="set_metadata" invoker="set_metadata">
			<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>
		</virtual-method>
		<property name="track-uri" writable="1">
			<type name="utf8" c:type="gchar*"/>
		</property>
		<method name="get_track_uri" c:identifier="rygel_player_controller_get_track_uri">
			<return-value transfer-ownership="full">
				<type name="utf8" c:type="gchar*"/>
			</return-value>
		</method>
		<virtual-method name="get_track_uri" invoker="get_track_uri">
			<return-value transfer-ownership="full">
				<type name="utf8" c:type="gchar*"/>
			</return-value>
		</virtual-method>
		<method name="set_track_uri" c:identifier="rygel_player_controller_set_track_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>
		<virtual-method name="set_track_uri" invoker="set_track_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>
		</virtual-method>
		<property name="track-metadata" writable="1">
			<type name="utf8" c:type="gchar*"/>
		</property>
		<method name="get_track_metadata" c:identifier="rygel_player_controller_get_track_metadata">
			<return-value transfer-ownership="full">
				<type name="utf8" c:type="gchar*"/>
			</return-value>
		</method>
		<virtual-method name="get_track_metadata" invoker="get_track_metadata">
			<return-value transfer-ownership="full">
				<type name="utf8" c:type="gchar*"/>
			</return-value>
		</virtual-method>
		<method name="set_track_metadata" c:identifier="rygel_player_controller_set_track_metadata">
			<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>
		<virtual-method name="set_track_metadata" invoker="set_track_metadata">
			<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>
		</virtual-method>
		<property name="next-uri" writable="1">
			<type name="utf8" c:type="gchar*"/>
		</property>
		<method name="get_next_uri" c:identifier="rygel_player_controller_get_next_uri">
			<return-value transfer-ownership="full">
				<type name="utf8" c:type="gchar*"/>
			</return-value>
		</method>
		<virtual-method name="get_next_uri" invoker="get_next_uri">
			<return-value transfer-ownership="full">
				<type name="utf8" c:type="gchar*"/>
			</return-value>
		</virtual-method>
		<method name="set_next_uri" c:identifier="rygel_player_controller_set_next_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>
		<virtual-method name="set_next_uri" invoker="set_next_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>
		</virtual-method>
		<property name="next-metadata" writable="1">
			<type name="utf8" c:type="gchar*"/>
		</property>
		<method name="get_next_metadata" c:identifier="rygel_player_controller_get_next_metadata">
			<return-value transfer-ownership="full">
				<type name="utf8" c:type="gchar*"/>
			</return-value>
		</method>
		<virtual-method name="get_next_metadata" invoker="get_next_metadata">
			<return-value transfer-ownership="full">
				<type name="utf8" c:type="gchar*"/>
			</return-value>
		</virtual-method>
		<method name="set_next_metadata" c:identifier="rygel_player_controller_set_next_metadata">
			<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>
		<virtual-method name="set_next_metadata" invoker="set_next_metadata">
			<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>
		</virtual-method>
		<property name="current-transport-actions">
			<type name="utf8" c:type="gchar*"/>
		</property>
		<method name="get_current_transport_actions" c:identifier="rygel_player_controller_get_current_transport_actions">
			<return-value transfer-ownership="full">
				<type name="utf8" c:type="gchar*"/>
			</return-value>
		</method>
		<virtual-method name="get_current_transport_actions" invoker="get_current_transport_actions">
			<return-value transfer-ownership="full">
				<type name="utf8" c:type="gchar*"/>
			</return-value>
		</virtual-method>
		<property name="play-mode" writable="1">
			<type name="utf8" c:type="gchar*"/>
		</property>
		<method name="get_play_mode" c:identifier="rygel_player_controller_get_play_mode">
			<return-value transfer-ownership="none">
				<type name="utf8" c:type="const gchar*"/>
			</return-value>
		</method>
		<virtual-method name="get_play_mode" invoker="get_play_mode">
			<return-value transfer-ownership="none">
				<type name="utf8" c:type="const gchar*"/>
			</return-value>
		</virtual-method>
		<method name="set_play_mode" c:identifier="rygel_player_controller_set_play_mode">
			<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>
		<virtual-method name="set_play_mode" invoker="set_play_mode">
			<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>
		</virtual-method>
		<property name="can-pause">
			<type name="gboolean" c:type="gboolean"/>
		</property>
		<method name="get_can_pause" c:identifier="rygel_player_controller_get_can_pause">
			<return-value transfer-ownership="none">
				<type name="gboolean" c:type="gboolean"/>
			</return-value>
		</method>
		<virtual-method name="get_can_pause" invoker="get_can_pause">
			<return-value transfer-ownership="none">
				<type name="gboolean" c:type="gboolean"/>
			</return-value>
		</virtual-method>
	</interface>
	<record name="PlayerControllerIface" c:type="RygelPlayerControllerIface" glib:is-gtype-struct-for="PlayerController">
		<field name="parent_iface">
			<type name="GObject.TypeInterface" c:type="GTypeInterface"/>
		</field>
		<field name="next">
			<callback name="next" c:type="next">
				<return-value transfer-ownership="full">
					<type name="gboolean" c:type="gboolean"/>
				</return-value>
				<parameters>
					<parameter name="self" transfer-ownership="none">
						<type name="RygelRenderer.PlayerController" c:type="RygelPlayerController*"/>
					</parameter>
				</parameters>
			</callback>
		</field>
		<field name="previous">
			<callback name="previous" c:type="previous">
				<return-value transfer-ownership="full">
					<type name="gboolean" c:type="gboolean"/>
				</return-value>
				<parameters>
					<parameter name="self" transfer-ownership="none">
						<type name="RygelRenderer.PlayerController" c:type="RygelPlayerController*"/>
					</parameter>
				</parameters>
			</callback>
		</field>
		<field name="set_single_play_uri">
			<callback name="set_single_play_uri" c:type="set_single_play_uri">
				<return-value transfer-ownership="full">
					<type name="none"/>
				</return-value>
				<parameters>
					<parameter name="self" transfer-ownership="none">
						<type name="RygelRenderer.PlayerController" c:type="RygelPlayerController*"/>
					</parameter>
					<parameter name="uri" transfer-ownership="none">
						<type name="utf8" c:type="const gchar*"/>
					</parameter>
					<parameter name="metadata" transfer-ownership="none">
						<type name="utf8" c:type="const gchar*"/>
					</parameter>
					<parameter name="mime" transfer-ownership="none" allow-none="1">
						<type name="utf8" c:type="const gchar*"/>
					</parameter>
					<parameter name="features" transfer-ownership="none" allow-none="1">
						<type name="utf8" c:type="const gchar*"/>
					</parameter>
				</parameters>
			</callback>
		</field>
		<field name="set_playlist_uri">
			<callback name="set_playlist_uri" c:type="set_playlist_uri">
				<return-value transfer-ownership="full">
					<type name="none"/>
				</return-value>
				<parameters>
					<parameter name="self" transfer-ownership="none">
						<type name="RygelRenderer.PlayerController" c:type="RygelPlayerController*"/>
					</parameter>
					<parameter name="uri" transfer-ownership="none">
						<type name="utf8" c:type="const gchar*"/>
					</parameter>
					<parameter name="metadata" transfer-ownership="none">
						<type name="utf8" c:type="const gchar*"/>
					</parameter>
					<parameter name="collection" transfer-ownership="none">
						<type name="GUPnPAV.MediaCollection" c:type="GUPnPMediaCollection*"/>
					</parameter>
				</parameters>
			</callback>
		</field>
		<field name="set_next_single_play_uri">
			<callback name="set_next_single_play_uri" c:type="set_next_single_play_uri">
				<return-value transfer-ownership="full">
					<type name="none"/>
				</return-value>
				<parameters>
					<parameter name="self" transfer-ownership="none">
						<type name="RygelRenderer.PlayerController" c:type="RygelPlayerController*"/>
					</parameter>
					<parameter name="uri" transfer-ownership="none">
						<type name="utf8" c:type="const gchar*"/>
					</parameter>
					<parameter name="metadata" transfer-ownership="none">
						<type name="utf8" c:type="const gchar*"/>
					</parameter>
					<parameter name="mime" transfer-ownership="none" allow-none="1">
						<type name="utf8" c:type="const gchar*"/>
					</parameter>
					<parameter name="features" transfer-ownership="none" allow-none="1">
						<type name="utf8" c:type="const gchar*"/>
					</parameter>
				</parameters>
			</callback>
		</field>
		<field name="set_next_playlist_uri">
			<callback name="set_next_playlist_uri" c:type="set_next_playlist_uri">
				<return-value transfer-ownership="full">
					<type name="none"/>
				</return-value>
				<parameters>
					<parameter name="self" transfer-ownership="none">
						<type name="RygelRenderer.PlayerController" c:type="RygelPlayerController*"/>
					</parameter>
					<parameter name="uri" transfer-ownership="none">
						<type name="utf8" c:type="const gchar*"/>
					</parameter>
					<parameter name="metadata" transfer-ownership="none">
						<type name="utf8" c:type="const gchar*"/>
					</parameter>
					<parameter name="collection" transfer-ownership="none">
						<type name="GUPnPAV.MediaCollection" c:type="GUPnPMediaCollection*"/>
					</parameter>
				</parameters>
			</callback>
		</field>
		<field name="is_play_mode_valid">
			<callback name="is_play_mode_valid" c:type="is_play_mode_valid">
				<return-value transfer-ownership="full">
					<type name="gboolean" c:type="gboolean"/>
				</return-value>
				<parameters>
					<parameter name="self" transfer-ownership="none">
						<type name="RygelRenderer.PlayerController" c:type="RygelPlayerController*"/>
					</parameter>
					<parameter name="play_mode" transfer-ownership="none">
						<type name="utf8" c:type="const gchar*"/>
					</parameter>
				</parameters>
			</callback>
		</field>
		<field name="get_playback_state">
			<callback name="get_playback_state" c:type="get_playback_state">
				<return-value transfer-ownership="none">
					<type name="utf8" c:type="const gchar*"/>
				</return-value>
				<parameters>
					<parameter name="self" transfer-ownership="none">
						<type name="RygelRenderer.PlayerController" c:type="RygelPlayerController*"/>
					</parameter>
				</parameters>
			</callback>
		</field>
		<field name="set_playback_state">
			<callback name="set_playback_state" c:type="set_playback_state">
				<return-value transfer-ownership="none">
					<type name="none"/>
				</return-value>
				<parameters>
					<parameter name="self" transfer-ownership="none">
						<type name="RygelRenderer.PlayerController" c:type="RygelPlayerController*"/>
					</parameter>
					<parameter name="value" transfer-ownership="none">
						<type name="utf8" c:type="const gchar*"/>
					</parameter>
				</parameters>
			</callback>
		</field>
		<field name="get_n_tracks">
			<callback name="get_n_tracks" c:type="get_n_tracks">
				<return-value transfer-ownership="none">
					<type name="guint" c:type="guint"/>
				</return-value>
				<parameters>
					<parameter name="self" transfer-ownership="none">
						<type name="RygelRenderer.PlayerController" c:type="RygelPlayerController*"/>
					</parameter>
				</parameters>
			</callback>
		</field>
		<field name="set_n_tracks">
			<callback name="set_n_tracks" c:type="set_n_tracks">
				<return-value transfer-ownership="none">
					<type name="none"/>
				</return-value>
				<parameters>
					<parameter name="self" transfer-ownership="none">
						<type name="RygelRenderer.PlayerController" c:type="RygelPlayerController*"/>
					</parameter>
					<parameter name="value" transfer-ownership="none">
						<type name="guint" c:type="guint"/>
					</parameter>
				</parameters>
			</callback>
		</field>
		<field name="get_track">
			<callback name="get_track" c:type="get_track">
				<return-value transfer-ownership="none">
					<type name="guint" c:type="guint"/>
				</return-value>
				<parameters>
					<parameter name="self" transfer-ownership="none">
						<type name="RygelRenderer.PlayerController" c:type="RygelPlayerController*"/>
					</parameter>
				</parameters>
			</callback>
		</field>
		<field name="set_track">
			<callback name="set_track" c:type="set_track">
				<return-value transfer-ownership="none">
					<type name="none"/>
				</return-value>
				<parameters>
					<parameter name="self" transfer-ownership="none">
						<type name="RygelRenderer.PlayerController" c:type="RygelPlayerController*"/>
					</parameter>
					<parameter name="value" transfer-ownership="none">
						<type name="guint" c:type="guint"/>
					</parameter>
				</parameters>
			</callback>
		</field>
		<field name="get_uri">
			<callback name="get_uri" c:type="get_uri">
				<return-value transfer-ownership="full">
					<type name="utf8" c:type="gchar*"/>
				</return-value>
				<parameters>
					<parameter name="self" transfer-ownership="none">
						<type name="RygelRenderer.PlayerController" c:type="RygelPlayerController*"/>
					</parameter>
				</parameters>
			</callback>
		</field>
		<field name="set_uri">
			<callback name="set_uri" c:type="set_uri">
				<return-value transfer-ownership="none">
					<type name="none"/>
				</return-value>
				<parameters>
					<parameter name="self" transfer-ownership="none">
						<type name="RygelRenderer.PlayerController" c:type="RygelPlayerController*"/>
					</parameter>
					<parameter name="value" transfer-ownership="none">
						<type name="utf8" c:type="const gchar*"/>
					</parameter>
				</parameters>
			</callback>
		</field>
		<field name="get_metadata">
			<callback name="get_metadata" c:type="get_metadata">
				<return-value transfer-ownership="full">
					<type name="utf8" c:type="gchar*"/>
				</return-value>
				<parameters>
					<parameter name="self" transfer-ownership="none">
						<type name="RygelRenderer.PlayerController" c:type="RygelPlayerController*"/>
					</parameter>
				</parameters>
			</callback>
		</field>
		<field name="set_metadata">
			<callback name="set_metadata" c:type="set_metadata">
				<return-value transfer-ownership="none">
					<type name="none"/>
				</return-value>
				<parameters>
					<parameter name="self" transfer-ownership="none">
						<type name="RygelRenderer.PlayerController" c:type="RygelPlayerController*"/>
					</parameter>
					<parameter name="value" transfer-ownership="none">
						<type name="utf8" c:type="const gchar*"/>
					</parameter>
				</parameters>
			</callback>
		</field>
		<field name="get_track_uri">
			<callback name="get_track_uri" c:type="get_track_uri">
				<return-value transfer-ownership="full">
					<type name="utf8" c:type="gchar*"/>
				</return-value>
				<parameters>
					<parameter name="self" transfer-ownership="none">
						<type name="RygelRenderer.PlayerController" c:type="RygelPlayerController*"/>
					</parameter>
				</parameters>
			</callback>
		</field>
		<field name="set_track_uri">
			<callback name="set_track_uri" c:type="set_track_uri">
				<return-value transfer-ownership="none">
					<type name="none"/>
				</return-value>
				<parameters>
					<parameter name="self" transfer-ownership="none">
						<type name="RygelRenderer.PlayerController" c:type="RygelPlayerController*"/>
					</parameter>
					<parameter name="value" transfer-ownership="none">
						<type name="utf8" c:type="const gchar*"/>
					</parameter>
				</parameters>
			</callback>
		</field>
		<field name="get_track_metadata">
			<callback name="get_track_metadata" c:type="get_track_metadata">
				<return-value transfer-ownership="full">
					<type name="utf8" c:type="gchar*"/>
				</return-value>
				<parameters>
					<parameter name="self" transfer-ownership="none">
						<type name="RygelRenderer.PlayerController" c:type="RygelPlayerController*"/>
					</parameter>
				</parameters>
			</callback>
		</field>
		<field name="set_track_metadata">
			<callback name="set_track_metadata" c:type="set_track_metadata">
				<return-value transfer-ownership="none">
					<type name="none"/>
				</return-value>
				<parameters>
					<parameter name="self" transfer-ownership="none">
						<type name="RygelRenderer.PlayerController" c:type="RygelPlayerController*"/>
					</parameter>
					<parameter name="value" transfer-ownership="none">
						<type name="utf8" c:type="const gchar*"/>
					</parameter>
				</parameters>
			</callback>
		</field>
		<field name="get_next_uri">
			<callback name="get_next_uri" c:type="get_next_uri">
				<return-value transfer-ownership="full">
					<type name="utf8" c:type="gchar*"/>
				</return-value>
				<parameters>
					<parameter name="self" transfer-ownership="none">
						<type name="RygelRenderer.PlayerController" c:type="RygelPlayerController*"/>
					</parameter>
				</parameters>
			</callback>
		</field>
		<field name="set_next_uri">
			<callback name="set_next_uri" c:type="set_next_uri">
				<return-value transfer-ownership="none">
					<type name="none"/>
				</return-value>
				<parameters>
					<parameter name="self" transfer-ownership="none">
						<type name="RygelRenderer.PlayerController" c:type="RygelPlayerController*"/>
					</parameter>
					<parameter name="value" transfer-ownership="none">
						<type name="utf8" c:type="const gchar*"/>
					</parameter>
				</parameters>
			</callback>
		</field>
		<field name="get_next_metadata">
			<callback name="get_next_metadata" c:type="get_next_metadata">
				<return-value transfer-ownership="full">
					<type name="utf8" c:type="gchar*"/>
				</return-value>
				<parameters>
					<parameter name="self" transfer-ownership="none">
						<type name="RygelRenderer.PlayerController" c:type="RygelPlayerController*"/>
					</parameter>
				</parameters>
			</callback>
		</field>
		<field name="set_next_metadata">
			<callback name="set_next_metadata" c:type="set_next_metadata">
				<return-value transfer-ownership="none">
					<type name="none"/>
				</return-value>
				<parameters>
					<parameter name="self" transfer-ownership="none">
						<type name="RygelRenderer.PlayerController" c:type="RygelPlayerController*"/>
					</parameter>
					<parameter name="value" transfer-ownership="none">
						<type name="utf8" c:type="const gchar*"/>
					</parameter>
				</parameters>
			</callback>
		</field>
		<field name="get_current_transport_actions">
			<callback name="get_current_transport_actions" c:type="get_current_transport_actions">
				<return-value transfer-ownership="full">
					<type name="utf8" c:type="gchar*"/>
				</return-value>
				<parameters>
					<parameter name="self" transfer-ownership="none">
						<type name="RygelRenderer.PlayerController" c:type="RygelPlayerController*"/>
					</parameter>
				</parameters>
			</callback>
		</field>
		<field name="get_play_mode">
			<callback name="get_play_mode" c:type="get_play_mode">
				<return-value transfer-ownership="none">
					<type name="utf8" c:type="const gchar*"/>
				</return-value>
				<parameters>
					<parameter name="self" transfer-ownership="none">
						<type name="RygelRenderer.PlayerController" c:type="RygelPlayerController*"/>
					</parameter>
				</parameters>
			</callback>
		</field>
		<field name="set_play_mode">
			<callback name="set_play_mode" c:type="set_play_mode">
				<return-value transfer-ownership="none">
					<type name="none"/>
				</return-value>
				<parameters>
					<parameter name="self" transfer-ownership="none">
						<type name="RygelRenderer.PlayerController" c:type="RygelPlayerController*"/>
					</parameter>
					<parameter name="value" transfer-ownership="none">
						<type name="utf8" c:type="const gchar*"/>
					</parameter>
				</parameters>
			</callback>
		</field>
		<field name="get_can_pause">
			<callback name="get_can_pause" c:type="get_can_pause">
				<return-value transfer-ownership="none">
					<type name="gboolean" c:type="gboolean"/>
				</return-value>
				<parameters>
					<parameter name="self" transfer-ownership="none">
						<type name="RygelRenderer.PlayerController" c:type="RygelPlayerController*"/>
					</parameter>
				</parameters>
			</callback>
		</field>
	</record>
</namespace>
</repository>
