/* rygel-core-1.0.vapi generated by valac 0.17.2.19-5f50d, do not modify. */

namespace Rygel {
	[CCode (cheader_filename = "rygel-core.h")]
	public class CmdlineConfig : GLib.Object, Rygel.Configuration {
		public CmdlineConfig ();
		public string get_config_file () throws GLib.Error;
		public static Rygel.CmdlineConfig get_default ();
		public static void parse_args (ref unowned string[] args) throws Rygel.CmdlineConfigError, GLib.OptionError;
	}
	[CCode (cheader_filename = "rygel-core.h")]
	public class ConnectionManager : GUPnP.Service {
		protected int av_transport_id;
		protected string connection_ids;
		protected string direction;
		protected int rcs_id;
		protected string sink_protocol_info;
		protected string source_protocol_info;
		public const string DESCRIPTION_PATH;
		public const string UPNP_ID;
		public const string UPNP_TYPE;
		public ConnectionManager ();
		public override void constructed ();
	}
	[CCode (cheader_filename = "rygel-core.h")]
	public class IconInfo {
		public int depth;
		public string file_extension;
		public int height;
		public string mime_type;
		public int64 size;
		public string uri;
		public int width;
		public IconInfo (string mime_type, string file_extension);
	}
	[CCode (cheader_filename = "rygel-core.h")]
	public class LogHandler : GLib.Object {
		public static Rygel.LogHandler get_default ();
	}
	[CCode (cheader_filename = "rygel-core.h")]
	public abstract class MediaDevice : GLib.Object {
		public MediaDevice ();
		public void add_interface (string iface);
		public GLib.List<string> get_interfaces ();
		public void remove_interface (string iface);
		protected Rygel.Plugin plugin { get; protected set; }
	}
	[CCode (cheader_filename = "rygel-core.h")]
	public class MetaConfig : GLib.Object, Rygel.Configuration {
		public MetaConfig ();
		public static Rygel.MetaConfig get_default ();
		public static void register_configuration (Rygel.Configuration config);
		public static void register_default_configurations ();
	}
	[CCode (cheader_filename = "rygel-core.h")]
	public class Plugin : GUPnP.ResourceFactory {
		public Gee.ArrayList<Rygel.IconInfo> default_icons;
		public string desc_path;
		public string description;
		public Gee.ArrayList<Rygel.IconInfo> icon_infos;
		public string name;
		public Gee.ArrayList<Rygel.ResourceInfo> resource_infos;
		public string title;
		public Plugin (string desc_path, string name, string? title, string? description = null);
		public void add_icon (Rygel.IconInfo icon_info);
		public void add_resource (Rygel.ResourceInfo resource_info);
		public virtual void apply_hacks (Rygel.RootDevice device, string description_path) throws GLib.Error;
		public bool active { get; set; }
	}
	[CCode (cheader_filename = "rygel-core.h")]
	public class PluginLoader : GLib.Object {
		public PluginLoader ();
		public void add_plugin (Rygel.Plugin plugin);
		public Rygel.Plugin? get_plugin_by_name (string name);
		public Gee.Collection<Rygel.Plugin> list_plugins ();
		public void load_plugins ();
		public bool plugin_disabled (string name);
		public signal void plugin_available (Rygel.Plugin plugin);
	}
	[CCode (cheader_filename = "rygel-core.h")]
	public class ResourceInfo {
		public string description_path;
		public GLib.Type type;
		public string upnp_id;
		public string upnp_type;
		public ResourceInfo (string upnp_id, string upnp_type, string description_path, GLib.Type type);
	}
	[CCode (cheader_filename = "rygel-core.h")]
	public class RootDevice : GUPnP.RootDevice {
		public RootDevice (GUPnP.Context context, Rygel.Plugin plugin, GUPnP.XMLDoc description_doc, string description_path, string description_dir);
		public Gee.ArrayList<GUPnP.ServiceInfo> services { get; internal set; }
	}
	[CCode (cheader_filename = "rygel-core.h")]
	public class RootDeviceFactory {
		public GUPnP.Context context;
		public RootDeviceFactory (GUPnP.Context context) throws GLib.Error;
		public Rygel.RootDevice create (Rygel.Plugin plugin) throws GLib.Error;
	}
	[CCode (cheader_filename = "rygel-core.h")]
	public class UserConfig : GLib.Object, Rygel.Configuration {
		protected GLib.KeyFile key_file;
		protected GLib.KeyFile sys_key_file;
		public const string AAC_TRANSCODER_KEY;
		public const string ALLOW_DELETION_KEY;
		public const string ALLOW_UPLOAD_KEY;
		public const string AVC_TRANSCODER_KEY;
		public const string CONFIG_FILE;
		public const string ENABLED_KEY;
		public const string IFACE_KEY;
		public const string LOG_LEVELS_KEY;
		public const string LPCM_TRANSCODER_KEY;
		public const string MP2TS_TRANSCODER_KEY;
		public const string MP3_TRANSCODER_KEY;
		public const string MUSIC_UPLOAD_DIR_PATH_KEY;
		public const string PICTURE_UPLOAD_DIR_PATH_KEY;
		public const string PLUGIN_PATH_KEY;
		public const string PORT_KEY;
		public const string TITLE_KEY;
		public const string TRANSCODING_KEY;
		public const string UPLOAD_FOLDER_KEY;
		public const string UPNP_ENABLED_KEY;
		public const string VIDEO_UPLOAD_DIR_PATH_KEY;
		public const string WMV_TRANSCODER_KEY;
		public UserConfig (string file) throws GLib.Error;
		public static Rygel.UserConfig get_default () throws GLib.Error;
	}
	[CCode (cheader_filename = "rygel-core.h")]
	public class XMLUtils {
		public XMLUtils ();
		public static Xml.Node* get_element (Xml.Node* node, ...);
	}
	[CCode (cheader_filename = "rygel-core.h")]
	public interface Configuration : GLib.Object {
		public abstract bool get_aac_transcoder () throws GLib.Error;
		public abstract bool get_allow_deletion () throws GLib.Error;
		public abstract bool get_allow_upload () throws GLib.Error;
		public abstract bool get_avc_transcoder () throws GLib.Error;
		public abstract bool get_bool (string section, string key) throws GLib.Error;
		public abstract bool get_enabled (string section) throws GLib.Error;
		public abstract int get_int (string section, string key, int min, int max) throws GLib.Error;
		public abstract Gee.ArrayList<int> get_int_list (string section, string key) throws GLib.Error;
		public abstract string get_interface () throws GLib.Error;
		public abstract string get_log_levels () throws GLib.Error;
		public abstract bool get_lpcm_transcoder () throws GLib.Error;
		public abstract bool get_mp2ts_transcoder () throws GLib.Error;
		public abstract bool get_mp3_transcoder () throws GLib.Error;
		public abstract string get_music_upload_folder () throws GLib.Error;
		public abstract string get_picture_upload_folder () throws GLib.Error;
		public abstract string get_plugin_path () throws GLib.Error;
		public abstract int get_port () throws GLib.Error;
		public abstract string get_string (string section, string key) throws GLib.Error;
		public abstract Gee.ArrayList<string> get_string_list (string section, string key) throws GLib.Error;
		public abstract string get_title (string section) throws GLib.Error;
		public abstract bool get_transcoding () throws GLib.Error;
		public abstract bool get_upnp_enabled () throws GLib.Error;
		public abstract string get_video_upload_folder () throws GLib.Error;
		public abstract bool get_wmv_transcoder () throws GLib.Error;
	}
	[CCode (cheader_filename = "rygel-core.h")]
	[DBus (name = "org.gnome.Rygel1")]
	public interface DBusInterface : GLib.Object {
		public const string OBJECT_PATH;
		public const string SERVICE_NAME;
		public abstract void shutdown () throws GLib.IOError;
	}
	[CCode (cheader_filename = "rygel-core.h")]
	public interface StateMachine : GLib.Object {
		public abstract async void run ();
		public abstract GLib.Cancellable cancellable { get; set; }
		public signal void completed ();
	}
	[CCode (cheader_filename = "rygel-core.h")]
	public enum LogLevel {
		INVALID,
		CRITICAL,
		ERROR,
		WARNING,
		INFO,
		DEFAULT,
		DEBUG
	}
	[CCode (cheader_filename = "rygel-core.h")]
	public errordomain CmdlineConfigError {
		VERSION_ONLY
	}
	[CCode (cheader_filename = "rygel-core.h")]
	public errordomain ConfigurationError {
		NO_VALUE_SET,
		VALUE_OUT_OF_RANGE
	}
}
namespace FreeDesktop {
	[CCode (cheader_filename = "rygel-core.h")]
	[DBus (name = "org.freedesktop.DBus")]
	public interface DBusObject : GLib.Object {
		public abstract async string[] list_activatable_names () throws GLib.DBusError;
		public abstract async string[] list_names () throws GLib.DBusError;
		public abstract uint32 request_name (string name, uint32 flags) throws GLib.DBusError;
		public abstract uint32 start_service_by_name (string name, uint32 flags) throws GLib.DBusError;
		public signal void name_owner_changed (string name, string old_owner, string new_owner);
	}
	[CCode (cheader_filename = "rygel-core.h")]
	[DBus (name = "org.freedesktop.DBus.Properties")]
	public interface Properties : GLib.Object {
		public abstract async GLib.HashTable<string,GLib.Variant> get_all (string iface) throws GLib.DBusError;
	}
	[CCode (cheader_filename = "rygel-core.h")]
	public enum DBusRequestNameReply {
		PRIMARY_OWNER,
		IN_QUEUE,
		EXISTS,
		ALREADY_OWNER
	}
	[CCode (cheader_filename = "rygel-core.h")]
	public const string DBUS_OBJECT_PATH;
	[CCode (cheader_filename = "rygel-core.h")]
	public const string DBUS_SERVICE;
}
[CCode (cheader_filename = "rygel-core.h")]
public errordomain RootDeviceFactoryError {
	XML_PARSE
}
[CCode (cheader_filename = "rygel-core.h")]
public class DescriptionFile : GLib.Object {
	public DescriptionFile (string template) throws GLib.Error;
	public DescriptionFile.from_xml_document (GUPnP.XMLDoc doc);
	public string get_friendly_name ();
	public void modify_service_type (string old_type, string new_type);
	public void save (string path) throws GLib.Error;
	public void set_device_type (string device_type);
	public void set_friendly_name (string friendly_name);
	public void set_model_name (string model_name);
	public void set_model_number (string model_number);
}
