/* rygel-renderer-1.0.vapi generated by valac 0.16.1, do not modify. */

namespace Rygel {
	namespace Playbin {
		[CCode (cheader_filename = "rygel-renderer.h")]
		public class Player : GLib.Object, Rygel.MediaPlayer {
			public static Rygel.Playbin.Player get_default ();
			public Player.wrap (Gst.Element playbin);
			public Gst.Element playbin { get; private set; }
		}
		[CCode (cheader_filename = "rygel-renderer.h")]
		public class Plugin : Rygel.MediaRendererPlugin {
			public const string NAME;
			public Plugin ();
			public override Rygel.MediaPlayer? get_player ();
		}
		[CCode (cheader_filename = "rygel-renderer.h")]
		public class Renderer : Rygel.MediaDevice {
			public Renderer (string title);
			public Renderer.wrap (Gst.Element pipeline, string title);
		}
	}
	[CCode (cheader_filename = "rygel-renderer.h")]
	public class MediaRendererPlugin : Rygel.Plugin {
		public MediaRendererPlugin (string name, string? title, string? description = null);
		public virtual Rygel.MediaPlayer? get_player ();
	}
	[CCode (cheader_filename = "rygel-renderer.h")]
	public interface MediaPlayer : GLib.Object {
		public abstract string[] get_mime_types ();
		public abstract string[] get_protocols ();
		public abstract bool seek (Gst.ClockTime time);
		public abstract string? content_features { owned get; set; }
		public abstract int64 duration { get; }
		public string duration_as_str { owned get; }
		public abstract string? metadata { owned get; set; }
		public abstract string? mime_type { owned get; set; }
		public abstract string playback_state { owned get; set; }
		public abstract int64 position { get; }
		public string position_as_str { owned get; }
		public abstract string? uri { owned get; set; }
		public abstract double volume { get; set; }
	}
}
