/* rygel-core.h generated by valac 0.40.8, the Vala compiler, do not modify */


#ifndef __RYGEL_CORE_H__
#define __RYGEL_CORE_H__

#include <glib.h>
#include <libgupnp/gupnp.h>
#include <stdlib.h>
#include <string.h>
#include <glib-object.h>
#include <gee.h>
#include <gio/gio.h>
#include <libxml/tree.h>

G_BEGIN_DECLS


#define RYGEL_TYPE_CONNECTION_MANAGER (rygel_connection_manager_get_type ())
#define RYGEL_CONNECTION_MANAGER(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), RYGEL_TYPE_CONNECTION_MANAGER, RygelConnectionManager))
#define RYGEL_CONNECTION_MANAGER_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), RYGEL_TYPE_CONNECTION_MANAGER, RygelConnectionManagerClass))
#define RYGEL_IS_CONNECTION_MANAGER(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), RYGEL_TYPE_CONNECTION_MANAGER))
#define RYGEL_IS_CONNECTION_MANAGER_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), RYGEL_TYPE_CONNECTION_MANAGER))
#define RYGEL_CONNECTION_MANAGER_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), RYGEL_TYPE_CONNECTION_MANAGER, RygelConnectionManagerClass))

typedef struct _RygelConnectionManager RygelConnectionManager;
typedef struct _RygelConnectionManagerClass RygelConnectionManagerClass;
typedef struct _RygelConnectionManagerPrivate RygelConnectionManagerPrivate;

#define RYGEL_TYPE_BASIC_MANAGEMENT (rygel_basic_management_get_type ())
#define RYGEL_BASIC_MANAGEMENT(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), RYGEL_TYPE_BASIC_MANAGEMENT, RygelBasicManagement))
#define RYGEL_BASIC_MANAGEMENT_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), RYGEL_TYPE_BASIC_MANAGEMENT, RygelBasicManagementClass))
#define RYGEL_IS_BASIC_MANAGEMENT(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), RYGEL_TYPE_BASIC_MANAGEMENT))
#define RYGEL_IS_BASIC_MANAGEMENT_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), RYGEL_TYPE_BASIC_MANAGEMENT))
#define RYGEL_BASIC_MANAGEMENT_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), RYGEL_TYPE_BASIC_MANAGEMENT, RygelBasicManagementClass))

typedef struct _RygelBasicManagement RygelBasicManagement;
typedef struct _RygelBasicManagementClass RygelBasicManagementClass;
typedef struct _RygelBasicManagementPrivate RygelBasicManagementPrivate;

#define RYGEL_TYPE_DESCRIPTION_FILE (rygel_description_file_get_type ())
#define RYGEL_DESCRIPTION_FILE(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), RYGEL_TYPE_DESCRIPTION_FILE, RygelDescriptionFile))
#define RYGEL_DESCRIPTION_FILE_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), RYGEL_TYPE_DESCRIPTION_FILE, RygelDescriptionFileClass))
#define RYGEL_IS_DESCRIPTION_FILE(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), RYGEL_TYPE_DESCRIPTION_FILE))
#define RYGEL_IS_DESCRIPTION_FILE_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), RYGEL_TYPE_DESCRIPTION_FILE))
#define RYGEL_DESCRIPTION_FILE_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), RYGEL_TYPE_DESCRIPTION_FILE, RygelDescriptionFileClass))

typedef struct _RygelDescriptionFile RygelDescriptionFile;
typedef struct _RygelDescriptionFileClass RygelDescriptionFileClass;
typedef struct _RygelDescriptionFilePrivate RygelDescriptionFilePrivate;

#define RYGEL_TYPE_PLUGIN_CAPABILITIES (rygel_plugin_capabilities_get_type ())

#define RYGEL_TYPE_RESOURCE_INFO (rygel_resource_info_get_type ())
#define RYGEL_RESOURCE_INFO(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), RYGEL_TYPE_RESOURCE_INFO, RygelResourceInfo))
#define RYGEL_RESOURCE_INFO_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), RYGEL_TYPE_RESOURCE_INFO, RygelResourceInfoClass))
#define RYGEL_IS_RESOURCE_INFO(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), RYGEL_TYPE_RESOURCE_INFO))
#define RYGEL_IS_RESOURCE_INFO_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), RYGEL_TYPE_RESOURCE_INFO))
#define RYGEL_RESOURCE_INFO_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), RYGEL_TYPE_RESOURCE_INFO, RygelResourceInfoClass))

typedef struct _RygelResourceInfo RygelResourceInfo;
typedef struct _RygelResourceInfoClass RygelResourceInfoClass;

#define RYGEL_TYPE_ICON_INFO (rygel_icon_info_get_type ())
#define RYGEL_ICON_INFO(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), RYGEL_TYPE_ICON_INFO, RygelIconInfo))
#define RYGEL_ICON_INFO_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), RYGEL_TYPE_ICON_INFO, RygelIconInfoClass))
#define RYGEL_IS_ICON_INFO(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), RYGEL_TYPE_ICON_INFO))
#define RYGEL_IS_ICON_INFO_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), RYGEL_TYPE_ICON_INFO))
#define RYGEL_ICON_INFO_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), RYGEL_TYPE_ICON_INFO, RygelIconInfoClass))

typedef struct _RygelIconInfo RygelIconInfo;
typedef struct _RygelIconInfoClass RygelIconInfoClass;

#define RYGEL_TYPE_DLNA_PROFILE (rygel_dlna_profile_get_type ())
#define RYGEL_DLNA_PROFILE(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), RYGEL_TYPE_DLNA_PROFILE, RygelDLNAProfile))
#define RYGEL_DLNA_PROFILE_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), RYGEL_TYPE_DLNA_PROFILE, RygelDLNAProfileClass))
#define RYGEL_IS_DLNA_PROFILE(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), RYGEL_TYPE_DLNA_PROFILE))
#define RYGEL_IS_DLNA_PROFILE_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), RYGEL_TYPE_DLNA_PROFILE))
#define RYGEL_DLNA_PROFILE_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), RYGEL_TYPE_DLNA_PROFILE, RygelDLNAProfileClass))

typedef struct _RygelDLNAProfile RygelDLNAProfile;
typedef struct _RygelDLNAProfileClass RygelDLNAProfileClass;
typedef struct _RygelDLNAProfilePrivate RygelDLNAProfilePrivate;

#define RYGEL_TYPE_ENERGY_MANAGEMENT (rygel_energy_management_get_type ())
#define RYGEL_ENERGY_MANAGEMENT(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), RYGEL_TYPE_ENERGY_MANAGEMENT, RygelEnergyManagement))
#define RYGEL_ENERGY_MANAGEMENT_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), RYGEL_TYPE_ENERGY_MANAGEMENT, RygelEnergyManagementClass))
#define RYGEL_IS_ENERGY_MANAGEMENT(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), RYGEL_TYPE_ENERGY_MANAGEMENT))
#define RYGEL_IS_ENERGY_MANAGEMENT_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), RYGEL_TYPE_ENERGY_MANAGEMENT))
#define RYGEL_ENERGY_MANAGEMENT_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), RYGEL_TYPE_ENERGY_MANAGEMENT, RygelEnergyManagementClass))

typedef struct _RygelEnergyManagement RygelEnergyManagement;
typedef struct _RygelEnergyManagementClass RygelEnergyManagementClass;
typedef struct _RygelEnergyManagementPrivate RygelEnergyManagementPrivate;

#define RYGEL_TYPE_ROOT_DEVICE (rygel_root_device_get_type ())
#define RYGEL_ROOT_DEVICE(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), RYGEL_TYPE_ROOT_DEVICE, RygelRootDevice))
#define RYGEL_ROOT_DEVICE_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), RYGEL_TYPE_ROOT_DEVICE, RygelRootDeviceClass))
#define RYGEL_IS_ROOT_DEVICE(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), RYGEL_TYPE_ROOT_DEVICE))
#define RYGEL_IS_ROOT_DEVICE_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), RYGEL_TYPE_ROOT_DEVICE))
#define RYGEL_ROOT_DEVICE_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), RYGEL_TYPE_ROOT_DEVICE, RygelRootDeviceClass))

typedef struct _RygelRootDevice RygelRootDevice;
typedef struct _RygelRootDeviceClass RygelRootDeviceClass;
typedef struct _RygelRootDevicePrivate RygelRootDevicePrivate;

#define RYGEL_TYPE_PLUGIN (rygel_plugin_get_type ())
#define RYGEL_PLUGIN(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), RYGEL_TYPE_PLUGIN, RygelPlugin))
#define RYGEL_PLUGIN_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), RYGEL_TYPE_PLUGIN, RygelPluginClass))
#define RYGEL_IS_PLUGIN(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), RYGEL_TYPE_PLUGIN))
#define RYGEL_IS_PLUGIN_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), RYGEL_TYPE_PLUGIN))
#define RYGEL_PLUGIN_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), RYGEL_TYPE_PLUGIN, RygelPluginClass))

typedef struct _RygelPlugin RygelPlugin;
typedef struct _RygelPluginClass RygelPluginClass;

#define RYGEL_TYPE_ROOT_DEVICE_FACTORY (rygel_root_device_factory_get_type ())
#define RYGEL_ROOT_DEVICE_FACTORY(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), RYGEL_TYPE_ROOT_DEVICE_FACTORY, RygelRootDeviceFactory))
#define RYGEL_ROOT_DEVICE_FACTORY_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), RYGEL_TYPE_ROOT_DEVICE_FACTORY, RygelRootDeviceFactoryClass))
#define RYGEL_IS_ROOT_DEVICE_FACTORY(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), RYGEL_TYPE_ROOT_DEVICE_FACTORY))
#define RYGEL_IS_ROOT_DEVICE_FACTORY_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), RYGEL_TYPE_ROOT_DEVICE_FACTORY))
#define RYGEL_ROOT_DEVICE_FACTORY_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), RYGEL_TYPE_ROOT_DEVICE_FACTORY, RygelRootDeviceFactoryClass))

typedef struct _RygelRootDeviceFactory RygelRootDeviceFactory;
typedef struct _RygelRootDeviceFactoryClass RygelRootDeviceFactoryClass;
typedef struct _RygelRootDeviceFactoryPrivate RygelRootDeviceFactoryPrivate;

#define RYGEL_TYPE_DBUS_INTERFACE (rygel_dbus_interface_get_type ())
#define RYGEL_DBUS_INTERFACE(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), RYGEL_TYPE_DBUS_INTERFACE, RygelDBusInterface))
#define RYGEL_IS_DBUS_INTERFACE(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), RYGEL_TYPE_DBUS_INTERFACE))
#define RYGEL_DBUS_INTERFACE_GET_INTERFACE(obj) (G_TYPE_INSTANCE_GET_INTERFACE ((obj), RYGEL_TYPE_DBUS_INTERFACE, RygelDBusInterfaceIface))

typedef struct _RygelDBusInterface RygelDBusInterface;
typedef struct _RygelDBusInterfaceIface RygelDBusInterfaceIface;

#define RYGEL_TYPE_DBUS_INTERFACE_PROXY (rygel_dbus_interface_proxy_get_type ())

#define RYGEL_TYPE_DBUS_ACL_PROVIDER (rygel_dbus_acl_provider_get_type ())
#define RYGEL_DBUS_ACL_PROVIDER(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), RYGEL_TYPE_DBUS_ACL_PROVIDER, RygelDBusAclProvider))
#define RYGEL_IS_DBUS_ACL_PROVIDER(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), RYGEL_TYPE_DBUS_ACL_PROVIDER))
#define RYGEL_DBUS_ACL_PROVIDER_GET_INTERFACE(obj) (G_TYPE_INSTANCE_GET_INTERFACE ((obj), RYGEL_TYPE_DBUS_ACL_PROVIDER, RygelDBusAclProviderIface))

typedef struct _RygelDBusAclProvider RygelDBusAclProvider;
typedef struct _RygelDBusAclProviderIface RygelDBusAclProviderIface;

#define RYGEL_TYPE_DBUS_ACL_PROVIDER_PROXY (rygel_dbus_acl_provider_proxy_get_type ())

#define RYGEL_TYPE_LOG_LEVEL (rygel_log_level_get_type ())

#define RYGEL_TYPE_LOG_HANDLER (rygel_log_handler_get_type ())
#define RYGEL_LOG_HANDLER(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), RYGEL_TYPE_LOG_HANDLER, RygelLogHandler))
#define RYGEL_LOG_HANDLER_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), RYGEL_TYPE_LOG_HANDLER, RygelLogHandlerClass))
#define RYGEL_IS_LOG_HANDLER(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), RYGEL_TYPE_LOG_HANDLER))
#define RYGEL_IS_LOG_HANDLER_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), RYGEL_TYPE_LOG_HANDLER))
#define RYGEL_LOG_HANDLER_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), RYGEL_TYPE_LOG_HANDLER, RygelLogHandlerClass))

typedef struct _RygelLogHandler RygelLogHandler;
typedef struct _RygelLogHandlerClass RygelLogHandlerClass;
typedef struct _RygelLogHandlerPrivate RygelLogHandlerPrivate;

#define RYGEL_TYPE_CONFIGURATION (rygel_configuration_get_type ())
#define RYGEL_CONFIGURATION(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), RYGEL_TYPE_CONFIGURATION, RygelConfiguration))
#define RYGEL_IS_CONFIGURATION(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), RYGEL_TYPE_CONFIGURATION))
#define RYGEL_CONFIGURATION_GET_INTERFACE(obj) (G_TYPE_INSTANCE_GET_INTERFACE ((obj), RYGEL_TYPE_CONFIGURATION, RygelConfigurationIface))

typedef struct _RygelConfiguration RygelConfiguration;
typedef struct _RygelConfigurationIface RygelConfigurationIface;

#define RYGEL_TYPE_META_CONFIG (rygel_meta_config_get_type ())
#define RYGEL_META_CONFIG(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), RYGEL_TYPE_META_CONFIG, RygelMetaConfig))
#define RYGEL_META_CONFIG_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), RYGEL_TYPE_META_CONFIG, RygelMetaConfigClass))
#define RYGEL_IS_META_CONFIG(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), RYGEL_TYPE_META_CONFIG))
#define RYGEL_IS_META_CONFIG_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), RYGEL_TYPE_META_CONFIG))
#define RYGEL_META_CONFIG_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), RYGEL_TYPE_META_CONFIG, RygelMetaConfigClass))

typedef struct _RygelMetaConfig RygelMetaConfig;
typedef struct _RygelMetaConfigClass RygelMetaConfigClass;
typedef struct _RygelMetaConfigPrivate RygelMetaConfigPrivate;

#define RYGEL_TYPE_RECURSIVE_MODULE_LOADER (rygel_recursive_module_loader_get_type ())
#define RYGEL_RECURSIVE_MODULE_LOADER(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), RYGEL_TYPE_RECURSIVE_MODULE_LOADER, RygelRecursiveModuleLoader))
#define RYGEL_RECURSIVE_MODULE_LOADER_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), RYGEL_TYPE_RECURSIVE_MODULE_LOADER, RygelRecursiveModuleLoaderClass))
#define RYGEL_IS_RECURSIVE_MODULE_LOADER(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), RYGEL_TYPE_RECURSIVE_MODULE_LOADER))
#define RYGEL_IS_RECURSIVE_MODULE_LOADER_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), RYGEL_TYPE_RECURSIVE_MODULE_LOADER))
#define RYGEL_RECURSIVE_MODULE_LOADER_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), RYGEL_TYPE_RECURSIVE_MODULE_LOADER, RygelRecursiveModuleLoaderClass))

typedef struct _RygelRecursiveModuleLoader RygelRecursiveModuleLoader;
typedef struct _RygelRecursiveModuleLoaderClass RygelRecursiveModuleLoaderClass;
typedef struct _RygelRecursiveModuleLoaderPrivate RygelRecursiveModuleLoaderPrivate;

#define RYGEL_TYPE_PLUGIN_INFORMATION (rygel_plugin_information_get_type ())
#define RYGEL_PLUGIN_INFORMATION(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), RYGEL_TYPE_PLUGIN_INFORMATION, RygelPluginInformation))
#define RYGEL_PLUGIN_INFORMATION_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), RYGEL_TYPE_PLUGIN_INFORMATION, RygelPluginInformationClass))
#define RYGEL_IS_PLUGIN_INFORMATION(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), RYGEL_TYPE_PLUGIN_INFORMATION))
#define RYGEL_IS_PLUGIN_INFORMATION_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), RYGEL_TYPE_PLUGIN_INFORMATION))
#define RYGEL_PLUGIN_INFORMATION_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), RYGEL_TYPE_PLUGIN_INFORMATION, RygelPluginInformationClass))

typedef struct _RygelPluginInformation RygelPluginInformation;
typedef struct _RygelPluginInformationClass RygelPluginInformationClass;

#define RYGEL_TYPE_PLUGIN_LOADER (rygel_plugin_loader_get_type ())
#define RYGEL_PLUGIN_LOADER(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), RYGEL_TYPE_PLUGIN_LOADER, RygelPluginLoader))
#define RYGEL_PLUGIN_LOADER_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), RYGEL_TYPE_PLUGIN_LOADER, RygelPluginLoaderClass))
#define RYGEL_IS_PLUGIN_LOADER(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), RYGEL_TYPE_PLUGIN_LOADER))
#define RYGEL_IS_PLUGIN_LOADER_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), RYGEL_TYPE_PLUGIN_LOADER))
#define RYGEL_PLUGIN_LOADER_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), RYGEL_TYPE_PLUGIN_LOADER, RygelPluginLoaderClass))

typedef struct _RygelPluginLoader RygelPluginLoader;
typedef struct _RygelPluginLoaderClass RygelPluginLoaderClass;
typedef struct _RygelPluginLoaderPrivate RygelPluginLoaderPrivate;
typedef struct _RygelPluginPrivate RygelPluginPrivate;
typedef struct _RygelResourceInfoPrivate RygelResourceInfoPrivate;

#define RYGEL_TYPE_MEDIA_DEVICE (rygel_media_device_get_type ())
#define RYGEL_MEDIA_DEVICE(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), RYGEL_TYPE_MEDIA_DEVICE, RygelMediaDevice))
#define RYGEL_MEDIA_DEVICE_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), RYGEL_TYPE_MEDIA_DEVICE, RygelMediaDeviceClass))
#define RYGEL_IS_MEDIA_DEVICE(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), RYGEL_TYPE_MEDIA_DEVICE))
#define RYGEL_IS_MEDIA_DEVICE_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), RYGEL_TYPE_MEDIA_DEVICE))
#define RYGEL_MEDIA_DEVICE_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), RYGEL_TYPE_MEDIA_DEVICE, RygelMediaDeviceClass))

typedef struct _RygelMediaDevice RygelMediaDevice;
typedef struct _RygelMediaDeviceClass RygelMediaDeviceClass;
typedef struct _RygelMediaDevicePrivate RygelMediaDevicePrivate;

#define RYGEL_TYPE_CONFIGURATION_ENTRY (rygel_configuration_entry_get_type ())

#define RYGEL_TYPE_SECTION_ENTRY (rygel_section_entry_get_type ())

#define RYGEL_TYPE_BASE_CONFIGURATION (rygel_base_configuration_get_type ())
#define RYGEL_BASE_CONFIGURATION(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), RYGEL_TYPE_BASE_CONFIGURATION, RygelBaseConfiguration))
#define RYGEL_BASE_CONFIGURATION_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), RYGEL_TYPE_BASE_CONFIGURATION, RygelBaseConfigurationClass))
#define RYGEL_IS_BASE_CONFIGURATION(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), RYGEL_TYPE_BASE_CONFIGURATION))
#define RYGEL_IS_BASE_CONFIGURATION_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), RYGEL_TYPE_BASE_CONFIGURATION))
#define RYGEL_BASE_CONFIGURATION_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), RYGEL_TYPE_BASE_CONFIGURATION, RygelBaseConfigurationClass))

typedef struct _RygelBaseConfiguration RygelBaseConfiguration;
typedef struct _RygelBaseConfigurationClass RygelBaseConfigurationClass;
typedef struct _RygelBaseConfigurationPrivate RygelBaseConfigurationPrivate;

#define RYGEL_TYPE_CMDLINE_CONFIG (rygel_cmdline_config_get_type ())
#define RYGEL_CMDLINE_CONFIG(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), RYGEL_TYPE_CMDLINE_CONFIG, RygelCmdlineConfig))
#define RYGEL_CMDLINE_CONFIG_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), RYGEL_TYPE_CMDLINE_CONFIG, RygelCmdlineConfigClass))
#define RYGEL_IS_CMDLINE_CONFIG(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), RYGEL_TYPE_CMDLINE_CONFIG))
#define RYGEL_IS_CMDLINE_CONFIG_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), RYGEL_TYPE_CMDLINE_CONFIG))
#define RYGEL_CMDLINE_CONFIG_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), RYGEL_TYPE_CMDLINE_CONFIG, RygelCmdlineConfigClass))

typedef struct _RygelCmdlineConfig RygelCmdlineConfig;
typedef struct _RygelCmdlineConfigClass RygelCmdlineConfigClass;
typedef struct _RygelCmdlineConfigPrivate RygelCmdlineConfigPrivate;

#define RYGEL_TYPE_ENVIRONMENT_CONFIG (rygel_environment_config_get_type ())
#define RYGEL_ENVIRONMENT_CONFIG(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), RYGEL_TYPE_ENVIRONMENT_CONFIG, RygelEnvironmentConfig))
#define RYGEL_ENVIRONMENT_CONFIG_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), RYGEL_TYPE_ENVIRONMENT_CONFIG, RygelEnvironmentConfigClass))
#define RYGEL_IS_ENVIRONMENT_CONFIG(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), RYGEL_TYPE_ENVIRONMENT_CONFIG))
#define RYGEL_IS_ENVIRONMENT_CONFIG_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), RYGEL_TYPE_ENVIRONMENT_CONFIG))
#define RYGEL_ENVIRONMENT_CONFIG_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), RYGEL_TYPE_ENVIRONMENT_CONFIG, RygelEnvironmentConfigClass))

typedef struct _RygelEnvironmentConfig RygelEnvironmentConfig;
typedef struct _RygelEnvironmentConfigClass RygelEnvironmentConfigClass;
typedef struct _RygelEnvironmentConfigPrivate RygelEnvironmentConfigPrivate;

#define RYGEL_TYPE_USER_CONFIG (rygel_user_config_get_type ())
#define RYGEL_USER_CONFIG(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), RYGEL_TYPE_USER_CONFIG, RygelUserConfig))
#define RYGEL_USER_CONFIG_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), RYGEL_TYPE_USER_CONFIG, RygelUserConfigClass))
#define RYGEL_IS_USER_CONFIG(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), RYGEL_TYPE_USER_CONFIG))
#define RYGEL_IS_USER_CONFIG_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), RYGEL_TYPE_USER_CONFIG))
#define RYGEL_USER_CONFIG_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), RYGEL_TYPE_USER_CONFIG, RygelUserConfigClass))

typedef struct _RygelUserConfig RygelUserConfig;
typedef struct _RygelUserConfigClass RygelUserConfigClass;
typedef struct _RygelUserConfigPrivate RygelUserConfigPrivate;

#define RYGEL_TYPE_STATE_MACHINE (rygel_state_machine_get_type ())
#define RYGEL_STATE_MACHINE(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), RYGEL_TYPE_STATE_MACHINE, RygelStateMachine))
#define RYGEL_IS_STATE_MACHINE(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), RYGEL_TYPE_STATE_MACHINE))
#define RYGEL_STATE_MACHINE_GET_INTERFACE(obj) (G_TYPE_INSTANCE_GET_INTERFACE ((obj), RYGEL_TYPE_STATE_MACHINE, RygelStateMachineIface))

typedef struct _RygelStateMachine RygelStateMachine;
typedef struct _RygelStateMachineIface RygelStateMachineIface;

#define RYGEL_TYPE_V1_HACKS (rygel_v1_hacks_get_type ())
#define RYGEL_V1_HACKS(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), RYGEL_TYPE_V1_HACKS, RygelV1Hacks))
#define RYGEL_V1_HACKS_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), RYGEL_TYPE_V1_HACKS, RygelV1HacksClass))
#define RYGEL_IS_V1_HACKS(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), RYGEL_TYPE_V1_HACKS))
#define RYGEL_IS_V1_HACKS_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), RYGEL_TYPE_V1_HACKS))
#define RYGEL_V1_HACKS_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), RYGEL_TYPE_V1_HACKS, RygelV1HacksClass))

typedef struct _RygelV1Hacks RygelV1Hacks;
typedef struct _RygelV1HacksClass RygelV1HacksClass;
typedef struct _RygelV1HacksPrivate RygelV1HacksPrivate;
typedef struct _RygelIconInfoPrivate RygelIconInfoPrivate;

#define RYGEL_TYPE_XML_UTILS (rygel_xml_utils_get_type ())
#define RYGEL_XML_UTILS(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), RYGEL_TYPE_XML_UTILS, RygelXMLUtils))
#define RYGEL_XML_UTILS_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), RYGEL_TYPE_XML_UTILS, RygelXMLUtilsClass))
#define RYGEL_IS_XML_UTILS(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), RYGEL_TYPE_XML_UTILS))
#define RYGEL_IS_XML_UTILS_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), RYGEL_TYPE_XML_UTILS))
#define RYGEL_XML_UTILS_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), RYGEL_TYPE_XML_UTILS, RygelXMLUtilsClass))

typedef struct _RygelXMLUtils RygelXMLUtils;
typedef struct _RygelXMLUtilsClass RygelXMLUtilsClass;
typedef struct _RygelXMLUtilsPrivate RygelXMLUtilsPrivate;

#define RYGEL_XML_UTILS_TYPE_ITERATOR (rygel_xml_utils_iterator_get_type ())
#define RYGEL_XML_UTILS_ITERATOR(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), RYGEL_XML_UTILS_TYPE_ITERATOR, RygelXMLUtilsIterator))
#define RYGEL_XML_UTILS_ITERATOR_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), RYGEL_XML_UTILS_TYPE_ITERATOR, RygelXMLUtilsIteratorClass))
#define RYGEL_XML_UTILS_IS_ITERATOR(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), RYGEL_XML_UTILS_TYPE_ITERATOR))
#define RYGEL_XML_UTILS_IS_ITERATOR_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), RYGEL_XML_UTILS_TYPE_ITERATOR))
#define RYGEL_XML_UTILS_ITERATOR_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), RYGEL_XML_UTILS_TYPE_ITERATOR, RygelXMLUtilsIteratorClass))

typedef struct _RygelXMLUtilsIterator RygelXMLUtilsIterator;
typedef struct _RygelXMLUtilsIteratorClass RygelXMLUtilsIteratorClass;
typedef struct _RygelXMLUtilsIteratorPrivate RygelXMLUtilsIteratorPrivate;

#define RYGEL_XML_UTILS_TYPE_CHILD_ITERATOR (rygel_xml_utils_child_iterator_get_type ())
#define RYGEL_XML_UTILS_CHILD_ITERATOR(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), RYGEL_XML_UTILS_TYPE_CHILD_ITERATOR, RygelXMLUtilsChildIterator))
#define RYGEL_XML_UTILS_CHILD_ITERATOR_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), RYGEL_XML_UTILS_TYPE_CHILD_ITERATOR, RygelXMLUtilsChildIteratorClass))
#define RYGEL_XML_UTILS_IS_CHILD_ITERATOR(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), RYGEL_XML_UTILS_TYPE_CHILD_ITERATOR))
#define RYGEL_XML_UTILS_IS_CHILD_ITERATOR_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), RYGEL_XML_UTILS_TYPE_CHILD_ITERATOR))
#define RYGEL_XML_UTILS_CHILD_ITERATOR_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), RYGEL_XML_UTILS_TYPE_CHILD_ITERATOR, RygelXMLUtilsChildIteratorClass))

typedef struct _RygelXMLUtilsChildIterator RygelXMLUtilsChildIterator;
typedef struct _RygelXMLUtilsChildIteratorClass RygelXMLUtilsChildIteratorClass;
typedef struct _RygelXMLUtilsChildIteratorPrivate RygelXMLUtilsChildIteratorPrivate;
typedef struct _RygelPluginInformationPrivate RygelPluginInformationPrivate;

struct _RygelConnectionManager {
	GUPnPService parent_instance;
	RygelConnectionManagerPrivate * priv;
	gchar* sink_protocol_info;
	gchar* connection_ids;
	gchar* source_protocol_info;
	gint rcs_id;
	gint av_transport_id;
	gchar* direction;
};

struct _RygelConnectionManagerClass {
	GUPnPServiceClass parent_class;
	gchar* (*get_current_protocol_info) (RygelConnectionManager* self);
};

struct _RygelBasicManagement {
	GUPnPService parent_instance;
	RygelBasicManagementPrivate * priv;
	gchar* device_status;
};

struct _RygelBasicManagementClass {
	GUPnPServiceClass parent_class;
};

struct _RygelDescriptionFile {
	GObject parent_instance;
	RygelDescriptionFilePrivate * priv;
};

struct _RygelDescriptionFileClass {
	GObjectClass parent_class;
};

typedef enum  {
	RYGEL_PLUGIN_CAPABILITIES_NONE = 0,
	RYGEL_PLUGIN_CAPABILITIES_IMAGE_UPLOAD = 1 << 0,
	RYGEL_PLUGIN_CAPABILITIES_VIDEO_UPLOAD = 1 << 1,
	RYGEL_PLUGIN_CAPABILITIES_AUDIO_UPLOAD = 1 << 2,
	RYGEL_PLUGIN_CAPABILITIES_UPLOAD = (RYGEL_PLUGIN_CAPABILITIES_IMAGE_UPLOAD | RYGEL_PLUGIN_CAPABILITIES_VIDEO_UPLOAD) | RYGEL_PLUGIN_CAPABILITIES_AUDIO_UPLOAD,
	RYGEL_PLUGIN_CAPABILITIES_TRACK_CHANGES = 1 << 3,
	RYGEL_PLUGIN_CAPABILITIES_CREATE_CONTAINERS = 1 << 4,
	RYGEL_PLUGIN_CAPABILITIES_DIAGNOSTICS = 1 << 5,
	RYGEL_PLUGIN_CAPABILITIES_ENERGY_MANAGEMENT = 1 << 6
} RygelPluginCapabilities;

struct _RygelDLNAProfile {
	GTypeInstance parent_instance;
	volatile int ref_count;
	RygelDLNAProfilePrivate * priv;
	gchar* mime;
	gchar* name;
};

struct _RygelDLNAProfileClass {
	GTypeClass parent_class;
	void (*finalize) (RygelDLNAProfile *self);
};

struct _RygelEnergyManagement {
	GUPnPService parent_instance;
	RygelEnergyManagementPrivate * priv;
};

struct _RygelEnergyManagementClass {
	GUPnPServiceClass parent_class;
};

struct _RygelRootDevice {
	GUPnPRootDevice parent_instance;
	RygelRootDevicePrivate * priv;
};

struct _RygelRootDeviceClass {
	GUPnPRootDeviceClass parent_class;
};

typedef enum  {
	ROOT_DEVICE_FACTORY_ERROR_XML_PARSE
} RootDeviceFactoryError;
#define ROOT_DEVICE_FACTORY_ERROR root_device_factory_error_quark ()
struct _RygelRootDeviceFactory {
	GObject parent_instance;
	RygelRootDeviceFactoryPrivate * priv;
};

struct _RygelRootDeviceFactoryClass {
	GObjectClass parent_class;
};

struct _RygelDBusInterfaceIface {
	GTypeInterface parent_iface;
	void (*shutdown) (RygelDBusInterface* self, GError** error);
};

struct _RygelDBusAclProviderIface {
	GTypeInterface parent_iface;
	void (*is_allowed) (RygelDBusAclProvider* self, GHashTable* device, GHashTable* service, const gchar* path, const gchar* address, const gchar* agent, GAsyncReadyCallback _callback_, gpointer _user_data_);
	gboolean (*is_allowed_finish) (RygelDBusAclProvider* self, GAsyncResult* _res_, GError** error);
};

typedef enum  {
	RYGEL_LOG_LEVEL_INVALID = 0,
	RYGEL_LOG_LEVEL_ERROR = 1,
	RYGEL_LOG_LEVEL_CRITICAL = 2,
	RYGEL_LOG_LEVEL_WARNING = 3,
	RYGEL_LOG_LEVEL_INFO = 4,
	RYGEL_LOG_LEVEL_DEFAULT = 4,
	RYGEL_LOG_LEVEL_DEBUG = 5
} RygelLogLevel;

struct _RygelLogHandler {
	GObject parent_instance;
	RygelLogHandlerPrivate * priv;
};

struct _RygelLogHandlerClass {
	GObjectClass parent_class;
};

struct _RygelConfigurationIface {
	GTypeInterface parent_iface;
	gchar* (*get_interface) (RygelConfiguration* self, GError** error) G_GNUC_DEPRECATED;
	gchar** (*get_interfaces) (RygelConfiguration* self, GError** error);
	gint (*get_port) (RygelConfiguration* self, GError** error);
	gboolean (*get_transcoding) (RygelConfiguration* self, GError** error);
	gboolean (*get_allow_upload) (RygelConfiguration* self, GError** error);
	gboolean (*get_allow_deletion) (RygelConfiguration* self, GError** error);
	gchar* (*get_log_levels) (RygelConfiguration* self, GError** error);
	gchar* (*get_plugin_path) (RygelConfiguration* self, GError** error);
	gchar* (*get_engine_path) (RygelConfiguration* self, GError** error);
	gchar* (*get_media_engine) (RygelConfiguration* self, GError** error);
	gchar* (*get_video_upload_folder) (RygelConfiguration* self, GError** error);
	gchar* (*get_music_upload_folder) (RygelConfiguration* self, GError** error);
	gchar* (*get_picture_upload_folder) (RygelConfiguration* self, GError** error);
	gboolean (*get_enabled) (RygelConfiguration* self, const gchar* section, GError** error);
	gchar* (*get_title) (RygelConfiguration* self, const gchar* section, GError** error);
	gchar* (*get_string) (RygelConfiguration* self, const gchar* section, const gchar* key, GError** error);
	GeeArrayList* (*get_string_list) (RygelConfiguration* self, const gchar* section, const gchar* key, GError** error);
	gint (*get_int) (RygelConfiguration* self, const gchar* section, const gchar* key, gint min, gint max, GError** error);
	GeeArrayList* (*get_int_list) (RygelConfiguration* self, const gchar* section, const gchar* key, GError** error);
	gboolean (*get_bool) (RygelConfiguration* self, const gchar* section, const gchar* key, GError** error);
};

struct _RygelMetaConfig {
	GObject parent_instance;
	RygelMetaConfigPrivate * priv;
};

struct _RygelMetaConfigClass {
	GObjectClass parent_class;
};

struct _RygelRecursiveModuleLoader {
	GObject parent_instance;
	RygelRecursiveModuleLoaderPrivate * priv;
};

struct _RygelRecursiveModuleLoaderClass {
	GObjectClass parent_class;
	gboolean (*load_module_from_file) (RygelRecursiveModuleLoader* self, GFile* file);
	gboolean (*load_module_from_info) (RygelRecursiveModuleLoader* self, RygelPluginInformation* info);
};

struct _RygelPluginLoader {
	RygelRecursiveModuleLoader parent_instance;
	RygelPluginLoaderPrivate * priv;
};

struct _RygelPluginLoaderClass {
	RygelRecursiveModuleLoaderClass parent_class;
};

struct _RygelPlugin {
	GUPnPResourceFactory parent_instance;
	RygelPluginPrivate * priv;
};

struct _RygelPluginClass {
	GUPnPResourceFactoryClass parent_class;
	void (*apply_hacks) (RygelPlugin* self, RygelRootDevice* device, const gchar* description_path, GError** error);
};

struct _RygelResourceInfo {
	GTypeInstance parent_instance;
	volatile int ref_count;
	RygelResourceInfoPrivate * priv;
	gchar* upnp_type;
	gchar* upnp_id;
	gchar* description_path;
	GType type;
};

struct _RygelResourceInfoClass {
	GTypeClass parent_class;
	void (*finalize) (RygelResourceInfo *self);
};

struct _RygelMediaDevice {
	GObject parent_instance;
	RygelMediaDevicePrivate * priv;
};

struct _RygelMediaDeviceClass {
	GObjectClass parent_class;
};

typedef enum  {
	RYGEL_CONFIGURATION_ERROR_NO_VALUE_SET,
	RYGEL_CONFIGURATION_ERROR_VALUE_OUT_OF_RANGE
} RygelConfigurationError;
#define RYGEL_CONFIGURATION_ERROR rygel_configuration_error_quark ()
typedef enum  {
	RYGEL_CONFIGURATION_ENTRY_INTERFACE,
	RYGEL_CONFIGURATION_ENTRY_PORT,
	RYGEL_CONFIGURATION_ENTRY_TRANSCODING,
	RYGEL_CONFIGURATION_ENTRY_ALLOW_UPLOAD,
	RYGEL_CONFIGURATION_ENTRY_ALLOW_DELETION,
	RYGEL_CONFIGURATION_ENTRY_LOG_LEVELS,
	RYGEL_CONFIGURATION_ENTRY_PLUGIN_PATH,
	RYGEL_CONFIGURATION_ENTRY_VIDEO_UPLOAD_FOLDER,
	RYGEL_CONFIGURATION_ENTRY_MUSIC_UPLOAD_FOLDER,
	RYGEL_CONFIGURATION_ENTRY_PICTURE_UPLOAD_FOLDER
} RygelConfigurationEntry;

typedef enum  {
	RYGEL_SECTION_ENTRY_TITLE,
	RYGEL_SECTION_ENTRY_ENABLED
} RygelSectionEntry;

struct _RygelBaseConfiguration {
	GObject parent_instance;
	RygelBaseConfigurationPrivate * priv;
};

struct _RygelBaseConfigurationClass {
	GObjectClass parent_class;
	gchar* (*get_interface) (RygelBaseConfiguration* self, GError** error);
	gchar** (*get_interfaces) (RygelBaseConfiguration* self, GError** error);
	gint (*get_port) (RygelBaseConfiguration* self, GError** error);
	gboolean (*get_transcoding) (RygelBaseConfiguration* self, GError** error);
	gboolean (*get_allow_upload) (RygelBaseConfiguration* self, GError** error);
	gboolean (*get_allow_deletion) (RygelBaseConfiguration* self, GError** error);
	gchar* (*get_log_levels) (RygelBaseConfiguration* self, GError** error);
	gchar* (*get_plugin_path) (RygelBaseConfiguration* self, GError** error);
	gchar* (*get_engine_path) (RygelBaseConfiguration* self, GError** error);
	gchar* (*get_media_engine) (RygelBaseConfiguration* self, GError** error);
	gchar* (*get_video_upload_folder) (RygelBaseConfiguration* self, GError** error);
	gchar* (*get_music_upload_folder) (RygelBaseConfiguration* self, GError** error);
	gchar* (*get_picture_upload_folder) (RygelBaseConfiguration* self, GError** error);
	gboolean (*get_enabled) (RygelBaseConfiguration* self, const gchar* section, GError** error);
	gchar* (*get_title) (RygelBaseConfiguration* self, const gchar* section, GError** error);
	gchar* (*get_string) (RygelBaseConfiguration* self, const gchar* section, const gchar* key, GError** error);
	GeeArrayList* (*get_string_list) (RygelBaseConfiguration* self, const gchar* section, const gchar* key, GError** error);
	gint (*get_int) (RygelBaseConfiguration* self, const gchar* section, const gchar* key, gint min, gint max, GError** error);
	GeeArrayList* (*get_int_list) (RygelBaseConfiguration* self, const gchar* section, const gchar* key, GError** error);
	gboolean (*get_bool) (RygelBaseConfiguration* self, const gchar* section, const gchar* key, GError** error);
};

typedef enum  {
	RYGEL_CMDLINE_CONFIG_ERROR_VERSION_ONLY
} RygelCmdlineConfigError;
#define RYGEL_CMDLINE_CONFIG_ERROR rygel_cmdline_config_error_quark ()
struct _RygelCmdlineConfig {
	GObject parent_instance;
	RygelCmdlineConfigPrivate * priv;
};

struct _RygelCmdlineConfigClass {
	GObjectClass parent_class;
};

struct _RygelEnvironmentConfig {
	GObject parent_instance;
	RygelEnvironmentConfigPrivate * priv;
};

struct _RygelEnvironmentConfigClass {
	GObjectClass parent_class;
};

struct _RygelUserConfig {
	GObject parent_instance;
	RygelUserConfigPrivate * priv;
	GKeyFile* key_file;
	GKeyFile* sys_key_file;
	GFileMonitor* key_file_monitor;
	GFileMonitor* sys_key_file_monitor;
};

struct _RygelUserConfigClass {
	GObjectClass parent_class;
};

struct _RygelStateMachineIface {
	GTypeInterface parent_iface;
	void (*run) (RygelStateMachine* self, GAsyncReadyCallback _callback_, gpointer _user_data_);
	void (*run_finish) (RygelStateMachine* self, GAsyncResult* _res_);
	GCancellable* (*get_cancellable) (RygelStateMachine* self);
	void (*set_cancellable) (RygelStateMachine* self, GCancellable* value);
};

struct _RygelV1Hacks {
	GObject parent_instance;
	RygelV1HacksPrivate * priv;
	gchar* description_path;
};

struct _RygelV1HacksClass {
	GObjectClass parent_class;
};

struct _RygelIconInfo {
	GTypeInstance parent_instance;
	volatile int ref_count;
	RygelIconInfoPrivate * priv;
	gchar* mime_type;
	gchar* uri;
	gchar* file_extension;
	gint64 size;
	gint width;
	gint height;
	gint depth;
};

struct _RygelIconInfoClass {
	GTypeClass parent_class;
	void (*finalize) (RygelIconInfo *self);
};

struct _RygelXMLUtils {
	GTypeInstance parent_instance;
	volatile int ref_count;
	RygelXMLUtilsPrivate * priv;
};

struct _RygelXMLUtilsClass {
	GTypeClass parent_class;
	void (*finalize) (RygelXMLUtils *self);
};

struct _RygelXMLUtilsIterator {
	GTypeInstance parent_instance;
	volatile int ref_count;
	RygelXMLUtilsIteratorPrivate * priv;
};

struct _RygelXMLUtilsIteratorClass {
	GTypeClass parent_class;
	void (*finalize) (RygelXMLUtilsIterator *self);
};

struct _RygelXMLUtilsChildIterator {
	RygelXMLUtilsIterator parent_instance;
	RygelXMLUtilsChildIteratorPrivate * priv;
};

struct _RygelXMLUtilsChildIteratorClass {
	RygelXMLUtilsIteratorClass parent_class;
};

struct _RygelPluginInformation {
	GObject parent_instance;
	RygelPluginInformationPrivate * priv;
};

struct _RygelPluginInformationClass {
	GObjectClass parent_class;
};


GType rygel_connection_manager_get_type (void) G_GNUC_CONST;
#define RYGEL_CONNECTION_MANAGER_UPNP_ID "urn:upnp-org:serviceId:ConnectionManager"
#define RYGEL_CONNECTION_MANAGER_UPNP_TYPE "urn:schemas-upnp-org:service:ConnectionManager:2"
#define RYGEL_CONNECTION_MANAGER_DESCRIPTION_PATH "xml/ConnectionManager.xml"
gchar* rygel_connection_manager_get_current_protocol_info (RygelConnectionManager* self);
RygelConnectionManager* rygel_connection_manager_new (void);
RygelConnectionManager* rygel_connection_manager_construct (GType object_type);
GType rygel_basic_management_get_type (void) G_GNUC_CONST;
#define RYGEL_BASIC_MANAGEMENT_UPNP_ID "urn:upnp-org:serviceId:BasicManagement"
#define RYGEL_BASIC_MANAGEMENT_UPNP_TYPE "urn:schemas-upnp-org:service:BasicManagement:2"
#define RYGEL_BASIC_MANAGEMENT_DESCRIPTION_PATH "xml/BasicManagement2.xml"
RygelBasicManagement* rygel_basic_management_new (void);
RygelBasicManagement* rygel_basic_management_construct (GType object_type);
guint rygel_basic_management_get_max_history_size (RygelBasicManagement* self);
void rygel_basic_management_set_max_history_size (RygelBasicManagement* self,
                                                  guint value);
GType rygel_description_file_get_type (void) G_GNUC_CONST;
RygelDescriptionFile* rygel_description_file_new (const gchar* template_file,
                                                  GError** error);
RygelDescriptionFile* rygel_description_file_construct (GType object_type,
                                                        const gchar* template_file,
                                                        GError** error);
RygelDescriptionFile* rygel_description_file_new_from_xml_document (GUPnPXMLDoc* doc);
RygelDescriptionFile* rygel_description_file_construct_from_xml_document (GType object_type,
                                                                          GUPnPXMLDoc* doc);
void rygel_description_file_set_device_type (RygelDescriptionFile* self,
                                             const gchar* device_type);
void rygel_description_file_set_model_description (RygelDescriptionFile* self,
                                                   const gchar* model_description);
void rygel_description_file_set_model_name (RygelDescriptionFile* self,
                                            const gchar* model_name);
void rygel_description_file_set_model_number (RygelDescriptionFile* self,
                                              const gchar* model_number);
void rygel_description_file_set_friendly_name (RygelDescriptionFile* self,
                                               const gchar* friendly_name);
gchar* rygel_description_file_get_friendly_name (RygelDescriptionFile* self);
void rygel_description_file_set_udn (RygelDescriptionFile* self,
                                     const gchar* udn);
gchar* rygel_description_file_get_udn (RygelDescriptionFile* self);
void rygel_description_file_set_serial_number (RygelDescriptionFile* self,
                                               const gchar* serial);
GType rygel_plugin_capabilities_get_type (void) G_GNUC_CONST;
void rygel_description_file_set_dlna_caps (RygelDescriptionFile* self,
                                           RygelPluginCapabilities capabilities);
void rygel_description_file_clear_service_list (RygelDescriptionFile* self);
void rygel_description_file_add_dlna_doc_element (RygelDescriptionFile* self,
                                                  const gchar* dlnadoc_xpath,
                                                  const gchar* dlnadoc_non_xpath,
                                                  const gchar* dev_cap);
void rygel_description_file_remove_dlna_doc_element (RygelDescriptionFile* self,
                                                     const gchar* dlnadoc_xpath);
gpointer rygel_resource_info_ref (gpointer instance);
void rygel_resource_info_unref (gpointer instance);
GParamSpec* rygel_param_spec_resource_info (const gchar* name,
                                            const gchar* nick,
                                            const gchar* blurb,
                                            GType object_type,
                                            GParamFlags flags);
void rygel_value_set_resource_info (GValue* value,
                                    gpointer v_object);
void rygel_value_take_resource_info (GValue* value,
                                     gpointer v_object);
gpointer rygel_value_get_resource_info (const GValue* value);
GType rygel_resource_info_get_type (void) G_GNUC_CONST;
void rygel_description_file_add_service (RygelDescriptionFile* self,
                                         const gchar* device_name,
                                         RygelResourceInfo* resource_info);
void rygel_description_file_clear_icon_list (RygelDescriptionFile* self);
gpointer rygel_icon_info_ref (gpointer instance);
void rygel_icon_info_unref (gpointer instance);
GParamSpec* rygel_param_spec_icon_info (const gchar* name,
                                        const gchar* nick,
                                        const gchar* blurb,
                                        GType object_type,
                                        GParamFlags flags);
void rygel_value_set_icon_info (GValue* value,
                                gpointer v_object);
void rygel_value_take_icon_info (GValue* value,
                                 gpointer v_object);
gpointer rygel_value_get_icon_info (const GValue* value);
GType rygel_icon_info_get_type (void) G_GNUC_CONST;
void rygel_description_file_add_icon (RygelDescriptionFile* self,
                                      const gchar* device_name,
                                      RygelIconInfo* icon_info,
                                      const gchar* url);
void rygel_description_file_modify_service_type (RygelDescriptionFile* self,
                                                 const gchar* old_type,
                                                 const gchar* new_type);
void rygel_description_file_save (RygelDescriptionFile* self,
                                  const gchar* path,
                                  GError** error);
gpointer rygel_dlna_profile_ref (gpointer instance);
void rygel_dlna_profile_unref (gpointer instance);
GParamSpec* rygel_param_spec_dlna_profile (const gchar* name,
                                           const gchar* nick,
                                           const gchar* blurb,
                                           GType object_type,
                                           GParamFlags flags);
void rygel_value_set_dlna_profile (GValue* value,
                                   gpointer v_object);
void rygel_value_take_dlna_profile (GValue* value,
                                    gpointer v_object);
gpointer rygel_value_get_dlna_profile (const GValue* value);
GType rygel_dlna_profile_get_type (void) G_GNUC_CONST;
RygelDLNAProfile* rygel_dlna_profile_new (const gchar* name,
                                          const gchar* mime);
RygelDLNAProfile* rygel_dlna_profile_construct (GType object_type,
                                                const gchar* name,
                                                const gchar* mime);
gint rygel_dlna_profile_compare_by_name (RygelDLNAProfile* a,
                                         RygelDLNAProfile* b);
GType rygel_energy_management_get_type (void) G_GNUC_CONST;
#define RYGEL_ENERGY_MANAGEMENT_UPNP_ID "urn:upnp-org:serviceId:EnergyManagement"
#define RYGEL_ENERGY_MANAGEMENT_UPNP_TYPE "urn:schemas-upnp-org:service:EnergyManagement:1"
#define RYGEL_ENERGY_MANAGEMENT_DESCRIPTION_PATH "xml/EnergyManagement.xml"
RygelEnergyManagement* rygel_energy_management_new (void);
RygelEnergyManagement* rygel_energy_management_construct (GType object_type);
GType rygel_root_device_get_type (void) G_GNUC_CONST;
GType rygel_plugin_get_type (void) G_GNUC_CONST;
RygelRootDevice* rygel_root_device_new (GUPnPContext* context,
                                        RygelPlugin* plugin,
                                        GUPnPXMLDoc* description_doc,
                                        const gchar* description_path,
                                        const gchar* description_dir);
RygelRootDevice* rygel_root_device_construct (GType object_type,
                                              GUPnPContext* context,
                                              RygelPlugin* plugin,
                                              GUPnPXMLDoc* description_doc,
                                              const gchar* description_path,
                                              const gchar* description_dir);
GeeArrayList* rygel_root_device_get_services (RygelRootDevice* self);
GQuark root_device_factory_error_quark (void);
gchar* rygel_get_pretty_host_name (void);
GType rygel_root_device_factory_get_type (void) G_GNUC_CONST;
RygelRootDeviceFactory* rygel_root_device_factory_new (GUPnPContext* context,
                                                       GError** error);
RygelRootDeviceFactory* rygel_root_device_factory_construct (GType object_type,
                                                             GUPnPContext* context,
                                                             GError** error);
RygelRootDevice* rygel_root_device_factory_create (RygelRootDeviceFactory* self,
                                                   RygelPlugin* plugin,
                                                   GError** error);
GUPnPContext* rygel_root_device_factory_get_context (RygelRootDeviceFactory* self);
GType rygel_dbus_interface_proxy_get_type (void) G_GNUC_CONST;
guint rygel_dbus_interface_register_object (void* object,
                                            GDBusConnection* connection,
                                            const gchar* path,
                                            GError** error);
GType rygel_dbus_interface_get_type (void) G_GNUC_CONST;
void rygel_dbus_interface_shutdown (RygelDBusInterface* self,
                                    GError** error);
#define RYGEL_DBUS_INTERFACE_SERVICE_NAME "org.gnome.Rygel1"
#define RYGEL_DBUS_INTERFACE_OBJECT_PATH "/org/gnome/Rygel1"
GType rygel_dbus_acl_provider_proxy_get_type (void) G_GNUC_CONST;
guint rygel_dbus_acl_provider_register_object (void* object,
                                               GDBusConnection* connection,
                                               const gchar* path,
                                               GError** error);
GType rygel_dbus_acl_provider_get_type (void) G_GNUC_CONST;
void rygel_dbus_acl_provider_is_allowed (RygelDBusAclProvider* self,
                                         GHashTable* device,
                                         GHashTable* service,
                                         const gchar* path,
                                         const gchar* address,
                                         const gchar* agent,
                                         GAsyncReadyCallback _callback_,
                                         gpointer _user_data_);
gboolean rygel_dbus_acl_provider_is_allowed_finish (RygelDBusAclProvider* self,
                                                    GAsyncResult* _res_,
                                                    GError** error);
#define RYGEL_DBUS_ACL_PROVIDER_SERVICE_NAME "org.gnome.Rygel1.AclProvider1"
#define RYGEL_DBUS_ACL_PROVIDER_OBJECT_PATH "/org/gnome/Rygel1/AclProvider1"
GType rygel_log_level_get_type (void) G_GNUC_CONST;
GType rygel_log_handler_get_type (void) G_GNUC_CONST;
RygelLogHandler* rygel_log_handler_get_default (void);
GType rygel_configuration_get_type (void) G_GNUC_CONST;
GType rygel_meta_config_get_type (void) G_GNUC_CONST;
RygelMetaConfig* rygel_meta_config_get_default (void);
void rygel_meta_config_register_configuration (RygelConfiguration* config);
RygelMetaConfig* rygel_meta_config_new (void);
RygelMetaConfig* rygel_meta_config_construct (GType object_type);
GType rygel_recursive_module_loader_get_type (void) G_GNUC_CONST;
GType rygel_plugin_information_get_type (void) G_GNUC_CONST;
GType rygel_plugin_loader_get_type (void) G_GNUC_CONST;
RygelPluginLoader* rygel_plugin_loader_new (void);
RygelPluginLoader* rygel_plugin_loader_construct (GType object_type);
gboolean rygel_plugin_loader_plugin_disabled (RygelPluginLoader* self,
                                              const gchar* name);
void rygel_plugin_loader_add_plugin (RygelPluginLoader* self,
                                     RygelPlugin* plugin);
RygelPlugin* rygel_plugin_loader_get_plugin_by_name (RygelPluginLoader* self,
                                                     const gchar* name);
GeeCollection* rygel_plugin_loader_list_plugins (RygelPluginLoader* self);
RygelRecursiveModuleLoader* rygel_recursive_module_loader_construct (GType object_type,
                                                                     const gchar* path);
void rygel_recursive_module_loader_load_modules (RygelRecursiveModuleLoader* self);
void rygel_recursive_module_loader_load_modules_sync (RygelRecursiveModuleLoader* self,
                                                      GCancellable* cancellable);
gboolean rygel_recursive_module_loader_load_module_from_file (RygelRecursiveModuleLoader* self,
                                                              GFile* file);
gboolean rygel_recursive_module_loader_load_module_from_info (RygelRecursiveModuleLoader* self,
                                                              RygelPluginInformation* info);
const gchar* rygel_recursive_module_loader_get_base_path (RygelRecursiveModuleLoader* self);
void rygel_recursive_module_loader_set_base_path (RygelRecursiveModuleLoader* self,
                                                  const gchar* value);
RygelPlugin* rygel_plugin_new (const gchar* desc_path,
                               const gchar* name,
                               const gchar* title,
                               const gchar* description,
                               RygelPluginCapabilities capabilities);
RygelPlugin* rygel_plugin_construct (GType object_type,
                                     const gchar* desc_path,
                                     const gchar* name,
                                     const gchar* title,
                                     const gchar* description,
                                     RygelPluginCapabilities capabilities);
void rygel_plugin_add_resource (RygelPlugin* self,
                                RygelResourceInfo* resource_info);
void rygel_plugin_add_icon (RygelPlugin* self,
                            RygelIconInfo* icon_info);
void rygel_plugin_apply_hacks (RygelPlugin* self,
                               RygelRootDevice* device,
                               const gchar* description_path,
                               GError** error);
RygelPluginCapabilities rygel_plugin_get_capabilities (RygelPlugin* self);
void rygel_plugin_set_capabilities (RygelPlugin* self,
                                    RygelPluginCapabilities value);
const gchar* rygel_plugin_get_name (RygelPlugin* self);
const gchar* rygel_plugin_get_title (RygelPlugin* self);
void rygel_plugin_set_title (RygelPlugin* self,
                             const gchar* value);
const gchar* rygel_plugin_get_description (RygelPlugin* self);
const gchar* rygel_plugin_get_desc_path (RygelPlugin* self);
gboolean rygel_plugin_get_active (RygelPlugin* self);
void rygel_plugin_set_active (RygelPlugin* self,
                              gboolean value);
GeeArrayList* rygel_plugin_get_resource_infos (RygelPlugin* self);
GeeArrayList* rygel_plugin_get_icon_infos (RygelPlugin* self);
GeeArrayList* rygel_plugin_get_default_icons (RygelPlugin* self);
RygelResourceInfo* rygel_resource_info_new (const gchar* upnp_id,
                                            const gchar* upnp_type,
                                            const gchar* description_path,
                                            GType type);
RygelResourceInfo* rygel_resource_info_construct (GType object_type,
                                                  const gchar* upnp_id,
                                                  const gchar* upnp_type,
                                                  const gchar* description_path,
                                                  GType type);
GType rygel_media_device_get_type (void) G_GNUC_CONST;
void rygel_media_device_add_interface (RygelMediaDevice* self,
                                       const gchar* iface);
void rygel_media_device_remove_interface (RygelMediaDevice* self,
                                          const gchar* iface);
GList* rygel_media_device_get_interfaces (RygelMediaDevice* self);
RygelMediaDevice* rygel_media_device_construct (GType object_type);
RygelPlugin* rygel_media_device_get_plugin (RygelMediaDevice* self);
void rygel_media_device_set_plugin (RygelMediaDevice* self,
                                    RygelPlugin* value);
const gchar* rygel_media_device_get_title (RygelMediaDevice* self);
RygelPluginCapabilities rygel_media_device_get_capabilities (RygelMediaDevice* self);
GQuark rygel_configuration_error_quark (void);
GType rygel_configuration_entry_get_type (void) G_GNUC_CONST;
GType rygel_section_entry_get_type (void) G_GNUC_CONST;
gchar* rygel_configuration_get_interface (RygelConfiguration* self,
                                          GError** error) G_GNUC_DEPRECATED;
gchar** rygel_configuration_get_interfaces (RygelConfiguration* self,
                                            GError** error);
gint rygel_configuration_get_port (RygelConfiguration* self,
                                   GError** error);
gboolean rygel_configuration_get_transcoding (RygelConfiguration* self,
                                              GError** error);
gboolean rygel_configuration_get_allow_upload (RygelConfiguration* self,
                                               GError** error);
gboolean rygel_configuration_get_allow_deletion (RygelConfiguration* self,
                                                 GError** error);
gchar* rygel_configuration_get_log_levels (RygelConfiguration* self,
                                           GError** error);
gchar* rygel_configuration_get_plugin_path (RygelConfiguration* self,
                                            GError** error);
gchar* rygel_configuration_get_engine_path (RygelConfiguration* self,
                                            GError** error);
gchar* rygel_configuration_get_media_engine (RygelConfiguration* self,
                                             GError** error);
gchar* rygel_configuration_get_video_upload_folder (RygelConfiguration* self,
                                                    GError** error);
gchar* rygel_configuration_get_music_upload_folder (RygelConfiguration* self,
                                                    GError** error);
gchar* rygel_configuration_get_picture_upload_folder (RygelConfiguration* self,
                                                      GError** error);
gboolean rygel_configuration_get_enabled (RygelConfiguration* self,
                                          const gchar* section,
                                          GError** error);
gchar* rygel_configuration_get_title (RygelConfiguration* self,
                                      const gchar* section,
                                      GError** error);
gchar* rygel_configuration_get_string (RygelConfiguration* self,
                                       const gchar* section,
                                       const gchar* key,
                                       GError** error);
GeeArrayList* rygel_configuration_get_string_list (RygelConfiguration* self,
                                                   const gchar* section,
                                                   const gchar* key,
                                                   GError** error);
gint rygel_configuration_get_int (RygelConfiguration* self,
                                  const gchar* section,
                                  const gchar* key,
                                  gint min,
                                  gint max,
                                  GError** error);
GeeArrayList* rygel_configuration_get_int_list (RygelConfiguration* self,
                                                const gchar* section,
                                                const gchar* key,
                                                GError** error);
gboolean rygel_configuration_get_bool (RygelConfiguration* self,
                                       const gchar* section,
                                       const gchar* key,
                                       GError** error);
GType rygel_base_configuration_get_type (void) G_GNUC_CONST;
gchar* rygel_base_configuration_get_interface (RygelBaseConfiguration* self,
                                               GError** error);
gchar** rygel_base_configuration_get_interfaces (RygelBaseConfiguration* self,
                                                 GError** error);
gint rygel_base_configuration_get_port (RygelBaseConfiguration* self,
                                        GError** error);
gboolean rygel_base_configuration_get_transcoding (RygelBaseConfiguration* self,
                                                   GError** error);
gboolean rygel_base_configuration_get_allow_upload (RygelBaseConfiguration* self,
                                                    GError** error);
gboolean rygel_base_configuration_get_allow_deletion (RygelBaseConfiguration* self,
                                                      GError** error);
gchar* rygel_base_configuration_get_log_levels (RygelBaseConfiguration* self,
                                                GError** error);
gchar* rygel_base_configuration_get_plugin_path (RygelBaseConfiguration* self,
                                                 GError** error);
gchar* rygel_base_configuration_get_engine_path (RygelBaseConfiguration* self,
                                                 GError** error);
gchar* rygel_base_configuration_get_media_engine (RygelBaseConfiguration* self,
                                                  GError** error);
gchar* rygel_base_configuration_get_video_upload_folder (RygelBaseConfiguration* self,
                                                         GError** error);
gchar* rygel_base_configuration_get_music_upload_folder (RygelBaseConfiguration* self,
                                                         GError** error);
gchar* rygel_base_configuration_get_picture_upload_folder (RygelBaseConfiguration* self,
                                                           GError** error);
gboolean rygel_base_configuration_get_enabled (RygelBaseConfiguration* self,
                                               const gchar* section,
                                               GError** error);
gchar* rygel_base_configuration_get_title (RygelBaseConfiguration* self,
                                           const gchar* section,
                                           GError** error);
gchar* rygel_base_configuration_get_string (RygelBaseConfiguration* self,
                                            const gchar* section,
                                            const gchar* key,
                                            GError** error);
GeeArrayList* rygel_base_configuration_get_string_list (RygelBaseConfiguration* self,
                                                        const gchar* section,
                                                        const gchar* key,
                                                        GError** error);
gint rygel_base_configuration_get_int (RygelBaseConfiguration* self,
                                       const gchar* section,
                                       const gchar* key,
                                       gint min,
                                       gint max,
                                       GError** error);
GeeArrayList* rygel_base_configuration_get_int_list (RygelBaseConfiguration* self,
                                                     const gchar* section,
                                                     const gchar* key,
                                                     GError** error);
gboolean rygel_base_configuration_get_bool (RygelBaseConfiguration* self,
                                            const gchar* section,
                                            const gchar* key,
                                            GError** error);
RygelBaseConfiguration* rygel_base_configuration_new (void);
RygelBaseConfiguration* rygel_base_configuration_construct (GType object_type);
GQuark rygel_cmdline_config_error_quark (void);
GType rygel_cmdline_config_get_type (void) G_GNUC_CONST;
RygelCmdlineConfig* rygel_cmdline_config_get_default (void);
void rygel_cmdline_config_parse_args (gchar*** args,
                                      int* args_length1,
                                      GError** error);
gchar* rygel_cmdline_config_get_config_file (RygelCmdlineConfig* self,
                                             GError** error);
RygelCmdlineConfig* rygel_cmdline_config_new (void);
RygelCmdlineConfig* rygel_cmdline_config_construct (GType object_type);
GType rygel_environment_config_get_type (void) G_GNUC_CONST;
RygelEnvironmentConfig* rygel_environment_config_get_default (void);
RygelEnvironmentConfig* rygel_environment_config_new (void);
RygelEnvironmentConfig* rygel_environment_config_construct (GType object_type);
GType rygel_user_config_get_type (void) G_GNUC_CONST;
#define RYGEL_USER_CONFIG_GENERAL_SECTION "general"
#define RYGEL_USER_CONFIG_CONFIG_FILE "rygel.conf"
#define RYGEL_USER_CONFIG_IFACE_KEY "interface"
#define RYGEL_USER_CONFIG_PORT_KEY "port"
#define RYGEL_USER_CONFIG_ENABLED_KEY "enabled"
#define RYGEL_USER_CONFIG_TITLE_KEY "title"
#define RYGEL_USER_CONFIG_TRANSCODING_KEY "enable-transcoding"
#define RYGEL_USER_CONFIG_ALLOW_UPLOAD_KEY "allow-upload"
#define RYGEL_USER_CONFIG_ALLOW_DELETION_KEY "allow-deletion"
#define RYGEL_USER_CONFIG_LOG_LEVELS_KEY "log-level"
#define RYGEL_USER_CONFIG_PLUGIN_PATH_KEY "plugin-path"
#define RYGEL_USER_CONFIG_ENGINE_PATH_KEY "engine-path"
#define RYGEL_USER_CONFIG_MEDIA_ENGINE_KEY "media-engine"
#define RYGEL_USER_CONFIG_UPLOAD_FOLDER_KEY "upload-folder"
#define RYGEL_USER_CONFIG_VIDEO_UPLOAD_DIR_PATH_KEY "video-" RYGEL_USER_CONFIG_UPLOAD_FOLDER_KEY
#define RYGEL_USER_CONFIG_MUSIC_UPLOAD_DIR_PATH_KEY "music-" RYGEL_USER_CONFIG_UPLOAD_FOLDER_KEY
#define RYGEL_USER_CONFIG_PICTURE_UPLOAD_DIR_PATH_KEY "picture-" RYGEL_USER_CONFIG_UPLOAD_FOLDER_KEY
RygelUserConfig* rygel_user_config_get_default (GError** error);
RygelUserConfig* rygel_user_config_new (const gchar* local_path,
                                        GError** error);
RygelUserConfig* rygel_user_config_construct (GType object_type,
                                              const gchar* local_path,
                                              GError** error);
RygelUserConfig* rygel_user_config_new_with_paths (const gchar* local_path,
                                                   const gchar* system_path,
                                                   GError** error);
RygelUserConfig* rygel_user_config_construct_with_paths (GType object_type,
                                                         const gchar* local_path,
                                                         const gchar* system_path,
                                                         GError** error);
GType rygel_state_machine_get_type (void) G_GNUC_CONST;
void rygel_state_machine_run (RygelStateMachine* self,
                              GAsyncReadyCallback _callback_,
                              gpointer _user_data_);
void rygel_state_machine_run_finish (RygelStateMachine* self,
                                     GAsyncResult* _res_);
GCancellable* rygel_state_machine_get_cancellable (RygelStateMachine* self);
void rygel_state_machine_set_cancellable (RygelStateMachine* self,
                                          GCancellable* value);
GType rygel_v1_hacks_get_type (void) G_GNUC_CONST;
RygelV1Hacks* rygel_v1_hacks_new (const gchar* device_type,
                                  gchar** service_types,
                                  int service_types_length1);
RygelV1Hacks* rygel_v1_hacks_construct (GType object_type,
                                        const gchar* device_type,
                                        gchar** service_types,
                                        int service_types_length1);
void rygel_v1_hacks_apply_on_device (RygelV1Hacks* self,
                                     RygelRootDevice* device,
                                     const gchar* template_path,
                                     GError** error);
const gchar* rygel_v1_hacks_get_device_type (RygelV1Hacks* self);
void rygel_v1_hacks_set_device_type (RygelV1Hacks* self,
                                     const gchar* value);
gchar** rygel_v1_hacks_get_service_types (RygelV1Hacks* self,
                                          int* result_length1);
RygelIconInfo* rygel_icon_info_new (const gchar* mime_type,
                                    const gchar* file_extension);
RygelIconInfo* rygel_icon_info_construct (GType object_type,
                                          const gchar* mime_type,
                                          const gchar* file_extension);
gpointer rygel_xml_utils_ref (gpointer instance);
void rygel_xml_utils_unref (gpointer instance);
GParamSpec* rygel_param_spec_xml_utils (const gchar* name,
                                        const gchar* nick,
                                        const gchar* blurb,
                                        GType object_type,
                                        GParamFlags flags);
void rygel_value_set_xml_utils (GValue* value,
                                gpointer v_object);
void rygel_value_take_xml_utils (GValue* value,
                                 gpointer v_object);
gpointer rygel_value_get_xml_utils (const GValue* value);
GType rygel_xml_utils_get_type (void) G_GNUC_CONST;
xmlNode* rygel_xml_utils_get_element (xmlNode* node,
                                      ...);
RygelXMLUtils* rygel_xml_utils_new (void);
RygelXMLUtils* rygel_xml_utils_construct (GType object_type);
gpointer rygel_xml_utils_iterator_ref (gpointer instance);
void rygel_xml_utils_iterator_unref (gpointer instance);
GParamSpec* rygel_xml_utils_param_spec_iterator (const gchar* name,
                                                 const gchar* nick,
                                                 const gchar* blurb,
                                                 GType object_type,
                                                 GParamFlags flags);
void rygel_xml_utils_value_set_iterator (GValue* value,
                                         gpointer v_object);
void rygel_xml_utils_value_take_iterator (GValue* value,
                                          gpointer v_object);
gpointer rygel_xml_utils_value_get_iterator (const GValue* value);
GType rygel_xml_utils_iterator_get_type (void) G_GNUC_CONST;
RygelXMLUtilsIterator* rygel_xml_utils_iterator_new (xmlNode* node);
RygelXMLUtilsIterator* rygel_xml_utils_iterator_construct (GType object_type,
                                                           xmlNode* node);
RygelXMLUtilsIterator* rygel_xml_utils_iterator_iterator (RygelXMLUtilsIterator* self);
gboolean rygel_xml_utils_iterator_next (RygelXMLUtilsIterator* self);
xmlNode* rygel_xml_utils_iterator_get (RygelXMLUtilsIterator* self);
GType rygel_xml_utils_child_iterator_get_type (void) G_GNUC_CONST;
RygelXMLUtilsChildIterator* rygel_xml_utils_child_iterator_new (xmlNode* node);
RygelXMLUtilsChildIterator* rygel_xml_utils_child_iterator_construct (GType object_type,
                                                                      xmlNode* node);
RygelPluginInformation* rygel_plugin_information_new_from_file (GFile* file,
                                                                GError** error);
const gchar* rygel_plugin_information_get_module_path (RygelPluginInformation* self);
const gchar* rygel_plugin_information_get_name (RygelPluginInformation* self);


G_END_DECLS

#endif
