/* gupnp-dlna-2.0.vapi generated by vapigen, do not modify. */

namespace GUPnP {
	namespace DLNA {
	}
}
[CCode (cprefix = "GUPnPDLNA", gir_namespace = "GUPnPDLNA", gir_version = "2.0", lower_case_cprefix = "gupnp_dlna_")]
namespace GUPnPDLNA {
	[CCode (cheader_filename = "libgupnp-dlna/gupnp-dlna.h", type_id = "gupnp_dlna_audio_information_get_type ()")]
	public abstract class AudioInformation : GLib.Object {
		[CCode (has_construct_function = false)]
		protected AudioInformation ();
	}
	[CCode (cheader_filename = "libgupnp-dlna/gupnp-dlna.h", type_id = "gupnp_dlna_container_information_get_type ()")]
	public abstract class ContainerInformation : GLib.Object {
		[CCode (has_construct_function = false)]
		protected ContainerInformation ();
	}
	[CCode (cheader_filename = "libgupnp-dlna/gupnp-dlna.h", copy_function = "g_boxed_copy", free_function = "g_boxed_free", type_id = "gupnp_dlna_fraction_get_type ()")]
	[Compact]
	public class Fraction {
		public GUPnPDLNA.Fraction copy ();
		public void free ();
		public int get_denominator ();
		public int get_numerator ();
	}
	[CCode (cheader_filename = "libgupnp-dlna/gupnp-dlna.h", copy_function = "g_boxed_copy", free_function = "g_boxed_free", type_id = "gupnp_dlna_fraction_range_get_type ()")]
	[Compact]
	public class FractionRange {
		public GUPnPDLNA.FractionRange copy ();
		public void free ();
		public unowned GUPnPDLNA.Fraction get_max ();
		public unowned GUPnPDLNA.Fraction get_min ();
	}
	[CCode (cheader_filename = "libgupnp-dlna/gupnp-dlna.h", type_id = "gupnp_dlna_image_information_get_type ()")]
	public abstract class ImageInformation : GLib.Object {
		[CCode (has_construct_function = false)]
		protected ImageInformation ();
	}
	[CCode (cheader_filename = "libgupnp-dlna/gupnp-dlna.h", type_id = "gupnp_dlna_information_get_type ()")]
	public abstract class Information : GLib.Object {
		[CCode (has_construct_function = false)]
		protected Information ();
		public virtual unowned GUPnPDLNA.AudioInformation get_audio_information ();
		public virtual unowned GUPnPDLNA.ContainerInformation get_container_information ();
		public virtual unowned GUPnPDLNA.ImageInformation get_image_information ();
		public virtual unowned string get_profile_name ();
		public unowned string get_uri ();
		public virtual unowned GUPnPDLNA.VideoInformation get_video_information ();
		public GUPnPDLNA.AudioInformation audio_information { get; }
		public GUPnPDLNA.ContainerInformation container_information { get; }
		public GUPnPDLNA.ImageInformation image_information { get; }
		public string uri { get; construct; }
		public GUPnPDLNA.VideoInformation video_information { get; }
	}
	[CCode (cheader_filename = "libgupnp-dlna/gupnp-dlna.h", copy_function = "g_boxed_copy", free_function = "g_boxed_free", type_id = "gupnp_dlna_int_range_get_type ()")]
	[Compact]
	public class IntRange {
		public GUPnPDLNA.IntRange copy ();
		public void free ();
		public int get_max ();
		public int get_min ();
	}
	[CCode (cheader_filename = "libgupnp-dlna/gupnp-dlna.h", type_id = "gupnp_dlna_profile_get_type ()")]
	public class Profile : GLib.Object {
		[CCode (has_construct_function = false)]
		protected Profile ();
		public unowned GLib.List<GUPnPDLNA.Restriction> get_audio_restrictions ();
		public unowned GLib.List<GUPnPDLNA.Restriction> get_container_restrictions ();
		public bool get_extended ();
		public unowned GLib.List<GUPnPDLNA.Restriction> get_image_restrictions ();
		public unowned string get_mime ();
		public unowned string get_name ();
		public unowned GLib.List<GUPnPDLNA.Restriction> get_video_restrictions ();
		public void* audio_restrictions { get; construct; }
		public void* container_restrictions { get; construct; }
		public bool extended { get; construct; }
		public void* image_restrictions { get; construct; }
		public string mime { get; construct; }
		public string name { get; construct; }
		public void* video_restrictions { get; construct; }
	}
	[CCode (cheader_filename = "libgupnp-dlna/gupnp-dlna.h", type_id = "gupnp_dlna_profile_guesser_get_type ()")]
	public class ProfileGuesser : GLib.Object {
		[CCode (has_construct_function = false)]
		public ProfileGuesser (bool relaxed_mode, bool extended_mode);
		public static void cleanup ();
		public bool get_extended_mode ();
		public unowned GUPnPDLNA.Profile get_profile (string name);
		public bool get_relaxed_mode ();
		public bool guess_profile_async (string uri, uint timeout_in_ms) throws GLib.Error;
		public unowned GUPnPDLNA.Profile guess_profile_from_info (GUPnPDLNA.Information info);
		public unowned GUPnPDLNA.Profile guess_profile_sync (string uri, uint timeout_in_ms, out GUPnPDLNA.Information dlna_info) throws GLib.Error;
		public unowned GLib.List<GUPnPDLNA.Profile> list_profiles ();
		public bool extended_mode { get; construct; }
		public bool relaxed_mode { get; construct; }
		public signal void done (GUPnPDLNA.Information info, GUPnPDLNA.Profile? dlna, GLib.Error? error);
	}
	[CCode (cheader_filename = "libgupnp-dlna/gupnp-dlna.h", copy_function = "g_boxed_copy", free_function = "g_boxed_free", type_id = "gupnp_dlna_restriction_get_type ()")]
	[Compact]
	public class Restriction {
		public GUPnPDLNA.Restriction copy ();
		public void free ();
		public unowned GLib.HashTable<string,GUPnPDLNA.ValueList> get_entries ();
		public unowned string get_mime ();
		public bool is_empty ();
		public string to_string ();
	}
	[CCode (cheader_filename = "libgupnp-dlna/gupnp-dlna.h", copy_function = "g_boxed_copy", free_function = "g_boxed_free", type_id = "gupnp_dlna_value_list_get_type ()")]
	[Compact]
	public class ValueList {
		public GUPnPDLNA.ValueList copy ();
		public void free ();
		public GLib.List<GLib.Value?> get_g_values ();
		public bool is_empty ();
		public string to_string ();
	}
	[CCode (cheader_filename = "libgupnp-dlna/gupnp-dlna.h", type_id = "gupnp_dlna_video_information_get_type ()")]
	public abstract class VideoInformation : GLib.Object {
		[CCode (has_construct_function = false)]
		protected VideoInformation ();
	}
	[CCode (cheader_filename = "libgupnp-dlna/gupnp-dlna.h", has_type_id = false)]
	public struct BoolValue {
		public bool value;
		public GUPnPDLNA.ValueState state;
	}
	[CCode (cheader_filename = "libgupnp-dlna/gupnp-dlna.h", has_type_id = false)]
	public struct FractionValue {
		public int numerator;
		public int denominator;
		public GUPnPDLNA.ValueState state;
	}
	[CCode (cheader_filename = "libgupnp-dlna/gupnp-dlna.h", has_type_id = false)]
	public struct IntValue {
		public int value;
		public GUPnPDLNA.ValueState state;
	}
	[CCode (cheader_filename = "libgupnp-dlna/gupnp-dlna.h", has_type_id = false)]
	public struct StringValue {
		public weak string value;
		public GUPnPDLNA.ValueState state;
	}
	[CCode (cheader_filename = "libgupnp-dlna/gupnp-dlna.h", cprefix = "GUPNP_DLNA_VALUE_STATE_", has_type_id = false)]
	public enum ValueState {
		SET,
		UNSET,
		UNSUPPORTED
	}
}
