/* rygel-media-export.h generated by valac 0.56.19, the Vala compiler, do not modify */

#ifndef __SRC_PLUGINS_MEDIA_EXPORT_RYGEL_MEDIA_EXPORT_H__
#define __SRC_PLUGINS_MEDIA_EXPORT_RYGEL_MEDIA_EXPORT_H__

#include "rygel-core.h"
#include "rygel-server.h"
#include <glib-object.h>
#include <stdlib.h>
#include <string.h>
#include <glib.h>
#include <gio/gio.h>
#include "rygel-db.h"
#include <gee.h>

G_BEGIN_DECLS

#define RYGEL_MEDIA_EXPORT_PLUGIN_NAME "MediaExport"
#if !defined(VALA_EXTERN)
#if defined(_MSC_VER)
#define VALA_EXTERN __declspec(dllexport) extern
#elif __GNUC__ >= 4
#define VALA_EXTERN __attribute__((visibility("default"))) extern
#else
#define VALA_EXTERN extern
#endif
#endif

#define RYGEL_MEDIA_EXPORT_TYPE_PLUGIN (rygel_media_export_plugin_get_type ())
#define RYGEL_MEDIA_EXPORT_PLUGIN(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), RYGEL_MEDIA_EXPORT_TYPE_PLUGIN, RygelMediaExportPlugin))
#define RYGEL_MEDIA_EXPORT_PLUGIN_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), RYGEL_MEDIA_EXPORT_TYPE_PLUGIN, RygelMediaExportPluginClass))
#define RYGEL_MEDIA_EXPORT_IS_PLUGIN(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), RYGEL_MEDIA_EXPORT_TYPE_PLUGIN))
#define RYGEL_MEDIA_EXPORT_IS_PLUGIN_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), RYGEL_MEDIA_EXPORT_TYPE_PLUGIN))
#define RYGEL_MEDIA_EXPORT_PLUGIN_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), RYGEL_MEDIA_EXPORT_TYPE_PLUGIN, RygelMediaExportPluginClass))

typedef struct _RygelMediaExportPlugin RygelMediaExportPlugin;
typedef struct _RygelMediaExportPluginClass RygelMediaExportPluginClass;
typedef struct _RygelMediaExportPluginPrivate RygelMediaExportPluginPrivate;

#define RYGEL_MEDIA_EXPORT_TYPE_DB_CONTAINER (rygel_media_export_db_container_get_type ())
#define RYGEL_MEDIA_EXPORT_DB_CONTAINER(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), RYGEL_MEDIA_EXPORT_TYPE_DB_CONTAINER, RygelMediaExportDBContainer))
#define RYGEL_MEDIA_EXPORT_DB_CONTAINER_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), RYGEL_MEDIA_EXPORT_TYPE_DB_CONTAINER, RygelMediaExportDBContainerClass))
#define RYGEL_MEDIA_EXPORT_IS_DB_CONTAINER(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), RYGEL_MEDIA_EXPORT_TYPE_DB_CONTAINER))
#define RYGEL_MEDIA_EXPORT_IS_DB_CONTAINER_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), RYGEL_MEDIA_EXPORT_TYPE_DB_CONTAINER))
#define RYGEL_MEDIA_EXPORT_DB_CONTAINER_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), RYGEL_MEDIA_EXPORT_TYPE_DB_CONTAINER, RygelMediaExportDBContainerClass))

typedef struct _RygelMediaExportDBContainer RygelMediaExportDBContainer;
typedef struct _RygelMediaExportDBContainerClass RygelMediaExportDBContainerClass;
typedef struct _RygelMediaExportDBContainerPrivate RygelMediaExportDBContainerPrivate;

#define RYGEL_MEDIA_EXPORT_TYPE_MEDIA_CACHE (rygel_media_export_media_cache_get_type ())
#define RYGEL_MEDIA_EXPORT_MEDIA_CACHE(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), RYGEL_MEDIA_EXPORT_TYPE_MEDIA_CACHE, RygelMediaExportMediaCache))
#define RYGEL_MEDIA_EXPORT_MEDIA_CACHE_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), RYGEL_MEDIA_EXPORT_TYPE_MEDIA_CACHE, RygelMediaExportMediaCacheClass))
#define RYGEL_MEDIA_EXPORT_IS_MEDIA_CACHE(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), RYGEL_MEDIA_EXPORT_TYPE_MEDIA_CACHE))
#define RYGEL_MEDIA_EXPORT_IS_MEDIA_CACHE_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), RYGEL_MEDIA_EXPORT_TYPE_MEDIA_CACHE))
#define RYGEL_MEDIA_EXPORT_MEDIA_CACHE_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), RYGEL_MEDIA_EXPORT_TYPE_MEDIA_CACHE, RygelMediaExportMediaCacheClass))

typedef struct _RygelMediaExportMediaCache RygelMediaExportMediaCache;
typedef struct _RygelMediaExportMediaCacheClass RygelMediaExportMediaCacheClass;

#define RYGEL_MEDIA_EXPORT_TYPE_MEDIA_CACHE_ERROR (rygel_media_export_media_cache_error_get_type ())
typedef struct _RygelMediaExportMediaCachePrivate RygelMediaExportMediaCachePrivate;

#define TYPE_METADATA_EXTRACTOR_ERROR (metadata_extractor_error_get_type ())

#define RYGEL_MEDIA_EXPORT_TYPE_METADATA_EXTRACTOR (rygel_media_export_metadata_extractor_get_type ())
#define RYGEL_MEDIA_EXPORT_METADATA_EXTRACTOR(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), RYGEL_MEDIA_EXPORT_TYPE_METADATA_EXTRACTOR, RygelMediaExportMetadataExtractor))
#define RYGEL_MEDIA_EXPORT_METADATA_EXTRACTOR_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), RYGEL_MEDIA_EXPORT_TYPE_METADATA_EXTRACTOR, RygelMediaExportMetadataExtractorClass))
#define RYGEL_MEDIA_EXPORT_IS_METADATA_EXTRACTOR(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), RYGEL_MEDIA_EXPORT_TYPE_METADATA_EXTRACTOR))
#define RYGEL_MEDIA_EXPORT_IS_METADATA_EXTRACTOR_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), RYGEL_MEDIA_EXPORT_TYPE_METADATA_EXTRACTOR))
#define RYGEL_MEDIA_EXPORT_METADATA_EXTRACTOR_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), RYGEL_MEDIA_EXPORT_TYPE_METADATA_EXTRACTOR, RygelMediaExportMetadataExtractorClass))

typedef struct _RygelMediaExportMetadataExtractor RygelMediaExportMetadataExtractor;
typedef struct _RygelMediaExportMetadataExtractorClass RygelMediaExportMetadataExtractorClass;
typedef struct _RygelMediaExportMetadataExtractorPrivate RygelMediaExportMetadataExtractorPrivate;

#define RYGEL_MEDIA_EXPORT_TYPE_TRACKABLE_DB_CONTAINER (rygel_media_export_trackable_db_container_get_type ())
#define RYGEL_MEDIA_EXPORT_TRACKABLE_DB_CONTAINER(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), RYGEL_MEDIA_EXPORT_TYPE_TRACKABLE_DB_CONTAINER, RygelMediaExportTrackableDbContainer))
#define RYGEL_MEDIA_EXPORT_TRACKABLE_DB_CONTAINER_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), RYGEL_MEDIA_EXPORT_TYPE_TRACKABLE_DB_CONTAINER, RygelMediaExportTrackableDbContainerClass))
#define RYGEL_MEDIA_EXPORT_IS_TRACKABLE_DB_CONTAINER(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), RYGEL_MEDIA_EXPORT_TYPE_TRACKABLE_DB_CONTAINER))
#define RYGEL_MEDIA_EXPORT_IS_TRACKABLE_DB_CONTAINER_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), RYGEL_MEDIA_EXPORT_TYPE_TRACKABLE_DB_CONTAINER))
#define RYGEL_MEDIA_EXPORT_TRACKABLE_DB_CONTAINER_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), RYGEL_MEDIA_EXPORT_TYPE_TRACKABLE_DB_CONTAINER, RygelMediaExportTrackableDbContainerClass))

typedef struct _RygelMediaExportTrackableDbContainer RygelMediaExportTrackableDbContainer;
typedef struct _RygelMediaExportTrackableDbContainerClass RygelMediaExportTrackableDbContainerClass;
typedef struct _RygelMediaExportTrackableDbContainerPrivate RygelMediaExportTrackableDbContainerPrivate;

#define RYGEL_MEDIA_EXPORT_TYPE_ROOT_CONTAINER (rygel_media_export_root_container_get_type ())
#define RYGEL_MEDIA_EXPORT_ROOT_CONTAINER(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), RYGEL_MEDIA_EXPORT_TYPE_ROOT_CONTAINER, RygelMediaExportRootContainer))
#define RYGEL_MEDIA_EXPORT_ROOT_CONTAINER_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), RYGEL_MEDIA_EXPORT_TYPE_ROOT_CONTAINER, RygelMediaExportRootContainerClass))
#define RYGEL_MEDIA_EXPORT_IS_ROOT_CONTAINER(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), RYGEL_MEDIA_EXPORT_TYPE_ROOT_CONTAINER))
#define RYGEL_MEDIA_EXPORT_IS_ROOT_CONTAINER_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), RYGEL_MEDIA_EXPORT_TYPE_ROOT_CONTAINER))
#define RYGEL_MEDIA_EXPORT_ROOT_CONTAINER_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), RYGEL_MEDIA_EXPORT_TYPE_ROOT_CONTAINER, RygelMediaExportRootContainerClass))

typedef struct _RygelMediaExportRootContainer RygelMediaExportRootContainer;
typedef struct _RygelMediaExportRootContainerClass RygelMediaExportRootContainerClass;
typedef struct _RygelMediaExportRootContainerPrivate RygelMediaExportRootContainerPrivate;

#define RYGEL_MEDIA_EXPORT_TYPE_RECURSIVE_FILE_MONITOR (rygel_media_export_recursive_file_monitor_get_type ())
#define RYGEL_MEDIA_EXPORT_RECURSIVE_FILE_MONITOR(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), RYGEL_MEDIA_EXPORT_TYPE_RECURSIVE_FILE_MONITOR, RygelMediaExportRecursiveFileMonitor))
#define RYGEL_MEDIA_EXPORT_RECURSIVE_FILE_MONITOR_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), RYGEL_MEDIA_EXPORT_TYPE_RECURSIVE_FILE_MONITOR, RygelMediaExportRecursiveFileMonitorClass))
#define RYGEL_MEDIA_EXPORT_IS_RECURSIVE_FILE_MONITOR(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), RYGEL_MEDIA_EXPORT_TYPE_RECURSIVE_FILE_MONITOR))
#define RYGEL_MEDIA_EXPORT_IS_RECURSIVE_FILE_MONITOR_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), RYGEL_MEDIA_EXPORT_TYPE_RECURSIVE_FILE_MONITOR))
#define RYGEL_MEDIA_EXPORT_RECURSIVE_FILE_MONITOR_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), RYGEL_MEDIA_EXPORT_TYPE_RECURSIVE_FILE_MONITOR, RygelMediaExportRecursiveFileMonitorClass))

typedef struct _RygelMediaExportRecursiveFileMonitor RygelMediaExportRecursiveFileMonitor;
typedef struct _RygelMediaExportRecursiveFileMonitorClass RygelMediaExportRecursiveFileMonitorClass;
typedef struct _RygelMediaExportRecursiveFileMonitorPrivate RygelMediaExportRecursiveFileMonitorPrivate;

#define RYGEL_MEDIA_EXPORT_TYPE_HARVESTING_TASK (rygel_media_export_harvesting_task_get_type ())
#define RYGEL_MEDIA_EXPORT_HARVESTING_TASK(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), RYGEL_MEDIA_EXPORT_TYPE_HARVESTING_TASK, RygelMediaExportHarvestingTask))
#define RYGEL_MEDIA_EXPORT_HARVESTING_TASK_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), RYGEL_MEDIA_EXPORT_TYPE_HARVESTING_TASK, RygelMediaExportHarvestingTaskClass))
#define RYGEL_MEDIA_EXPORT_IS_HARVESTING_TASK(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), RYGEL_MEDIA_EXPORT_TYPE_HARVESTING_TASK))
#define RYGEL_MEDIA_EXPORT_IS_HARVESTING_TASK_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), RYGEL_MEDIA_EXPORT_TYPE_HARVESTING_TASK))
#define RYGEL_MEDIA_EXPORT_HARVESTING_TASK_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), RYGEL_MEDIA_EXPORT_TYPE_HARVESTING_TASK, RygelMediaExportHarvestingTaskClass))

typedef struct _RygelMediaExportHarvestingTask RygelMediaExportHarvestingTask;
typedef struct _RygelMediaExportHarvestingTaskClass RygelMediaExportHarvestingTaskClass;
typedef struct _RygelMediaExportHarvestingTaskPrivate RygelMediaExportHarvestingTaskPrivate;

#define RYGEL_MEDIA_EXPORT_TYPE_UPDATABLE_OBJECT (rygel_media_export_updatable_object_get_type ())
#define RYGEL_MEDIA_EXPORT_UPDATABLE_OBJECT(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), RYGEL_MEDIA_EXPORT_TYPE_UPDATABLE_OBJECT, RygelMediaExportUpdatableObject))
#define RYGEL_MEDIA_EXPORT_IS_UPDATABLE_OBJECT(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), RYGEL_MEDIA_EXPORT_TYPE_UPDATABLE_OBJECT))
#define RYGEL_MEDIA_EXPORT_UPDATABLE_OBJECT_GET_INTERFACE(obj) (G_TYPE_INSTANCE_GET_INTERFACE ((obj), RYGEL_MEDIA_EXPORT_TYPE_UPDATABLE_OBJECT, RygelMediaExportUpdatableObjectIface))

typedef struct _RygelMediaExportUpdatableObject RygelMediaExportUpdatableObject;
typedef struct _RygelMediaExportUpdatableObjectIface RygelMediaExportUpdatableObjectIface;

struct _RygelMediaExportPlugin {
	RygelMediaServerPlugin parent_instance;
	RygelMediaExportPluginPrivate * priv;
};

struct _RygelMediaExportPluginClass {
	RygelMediaServerPluginClass parent_class;
};

struct _RygelMediaExportDBContainer {
	RygelMediaContainer parent_instance;
	RygelMediaExportDBContainerPrivate * priv;
	RygelMediaExportMediaCache* media_db;
};

struct _RygelMediaExportDBContainerClass {
	RygelMediaContainerClass parent_class;
	gint (*count_children) (RygelMediaExportDBContainer* self);
	void (*search) (RygelMediaExportDBContainer* self, RygelSearchExpression* expression, guint offset, guint max_count, const gchar* sort_criteria, GCancellable* cancellable, GAsyncReadyCallback _callback_, gpointer _user_data_);
	RygelMediaObjects* (*search_finish) (RygelMediaExportDBContainer* self, GAsyncResult* _res_, guint* total_matches, GError** error);
};

typedef enum  {
	RYGEL_MEDIA_EXPORT_MEDIA_CACHE_ERROR_SQLITE_ERROR,
	RYGEL_MEDIA_EXPORT_MEDIA_CACHE_ERROR_GENERAL_ERROR,
	RYGEL_MEDIA_EXPORT_MEDIA_CACHE_ERROR_INVALID_TYPE,
	RYGEL_MEDIA_EXPORT_MEDIA_CACHE_ERROR_UNSUPPORTED_SEARCH,
	RYGEL_MEDIA_EXPORT_MEDIA_CACHE_ERROR_UPGRADE_FAILED
} RygelMediaExportMediaCacheError;
#define RYGEL_MEDIA_EXPORT_MEDIA_CACHE_ERROR rygel_media_export_media_cache_error_quark ()

struct _RygelMediaExportMediaCache {
	GObject parent_instance;
	RygelMediaExportMediaCachePrivate * priv;
};

struct _RygelMediaExportMediaCacheClass {
	GObjectClass parent_class;
};

typedef enum  {
	METADATA_EXTRACTOR_ERROR_GENERAL,
	METADATA_EXTRACTOR_ERROR_BLACKLIST
} MetadataExtractorError;
#define METADATA_EXTRACTOR_ERROR metadata_extractor_error_quark ()

struct _RygelMediaExportMetadataExtractor {
	GObject parent_instance;
	RygelMediaExportMetadataExtractorPrivate * priv;
};

struct _RygelMediaExportMetadataExtractorClass {
	GObjectClass parent_class;
};

struct _RygelMediaExportTrackableDbContainer {
	RygelMediaExportDBContainer parent_instance;
	RygelMediaExportTrackableDbContainerPrivate * priv;
};

struct _RygelMediaExportTrackableDbContainerClass {
	RygelMediaExportDBContainerClass parent_class;
	void (*remove_child) (RygelMediaExportTrackableDbContainer* self, RygelMediaObject* object, GAsyncReadyCallback _callback_, gpointer _user_data_);
	void (*remove_child_finish) (RygelMediaExportTrackableDbContainer* self, GAsyncResult* _res_);
	gchar* (*get_service_reset_token) (RygelMediaExportTrackableDbContainer* self);
	void (*set_service_reset_token) (RygelMediaExportTrackableDbContainer* self, const gchar* token);
	guint32 (*get_system_update_id) (RygelMediaExportTrackableDbContainer* self);
};

struct _RygelMediaExportRootContainer {
	RygelMediaExportTrackableDbContainer parent_instance;
	RygelMediaExportRootContainerPrivate * priv;
};

struct _RygelMediaExportRootContainerClass {
	RygelMediaExportTrackableDbContainerClass parent_class;
};

struct _RygelMediaExportRecursiveFileMonitor {
	GObject parent_instance;
	RygelMediaExportRecursiveFileMonitorPrivate * priv;
};

struct _RygelMediaExportRecursiveFileMonitorClass {
	GObjectClass parent_class;
};

struct _RygelMediaExportHarvestingTask {
	GObject parent_instance;
	RygelMediaExportHarvestingTaskPrivate * priv;
	GFile* origin;
};

struct _RygelMediaExportHarvestingTaskClass {
	GObjectClass parent_class;
};

struct _RygelMediaExportUpdatableObjectIface {
	GTypeInterface parent_iface;
	void (*commit_custom) (RygelMediaExportUpdatableObject* self, gboolean override_guarded, GAsyncReadyCallback _callback_, gpointer _user_data_);
	void (*commit_custom_finish) (RygelMediaExportUpdatableObject* self, GAsyncResult* _res_, GError** error);
};

VALA_EXTERN void module_init (RygelPluginLoader* loader);
VALA_EXTERN void on_plugin_available (RygelPlugin* plugin,
                          RygelPlugin* our_plugin);
VALA_EXTERN GType rygel_media_export_plugin_get_type (void) G_GNUC_CONST ;
G_DEFINE_AUTOPTR_CLEANUP_FUNC (RygelMediaExportPlugin, g_object_unref)
VALA_EXTERN RygelMediaExportPlugin* rygel_media_export_plugin_new (GError** error);
VALA_EXTERN RygelMediaExportPlugin* rygel_media_export_plugin_construct (GType object_type,
                                                             GError** error);
VALA_EXTERN GType rygel_media_export_db_container_get_type (void) G_GNUC_CONST ;
G_DEFINE_AUTOPTR_CLEANUP_FUNC (RygelMediaExportDBContainer, g_object_unref)
VALA_EXTERN GType rygel_media_export_media_cache_get_type (void) G_GNUC_CONST ;
G_DEFINE_AUTOPTR_CLEANUP_FUNC (RygelMediaExportMediaCache, g_object_unref)
VALA_EXTERN RygelMediaExportDBContainer* rygel_media_export_db_container_new (const gchar* id,
                                                                  const gchar* title);
VALA_EXTERN RygelMediaExportDBContainer* rygel_media_export_db_container_construct (GType object_type,
                                                                        const gchar* id,
                                                                        const gchar* title);
VALA_EXTERN gint rygel_media_export_db_container_count_children (RygelMediaExportDBContainer* self);
VALA_EXTERN void rygel_media_export_db_container_search (RygelMediaExportDBContainer* self,
                                             RygelSearchExpression* expression,
                                             guint offset,
                                             guint max_count,
                                             const gchar* sort_criteria,
                                             GCancellable* cancellable,
                                             GAsyncReadyCallback _callback_,
                                             gpointer _user_data_);
VALA_EXTERN RygelMediaObjects* rygel_media_export_db_container_search_finish (RygelMediaExportDBContainer* self,
                                                                  GAsyncResult* _res_,
                                                                  guint* total_matches,
                                                                  GError** error);
VALA_EXTERN GQuark rygel_media_export_media_cache_error_quark (void);
VALA_EXTERN GType rygel_media_export_media_cache_error_get_type (void) G_GNUC_CONST ;
VALA_EXTERN gchar* rygel_media_export_media_cache_get_id (GFile* file);
VALA_EXTERN void rygel_media_export_media_cache_ensure_exists (GError** error);
VALA_EXTERN RygelMediaExportMediaCache* rygel_media_export_media_cache_get_default (void);
VALA_EXTERN void rygel_media_export_media_cache_remove_by_id (RygelMediaExportMediaCache* self,
                                                  const gchar* id,
                                                  GError** error);
VALA_EXTERN void rygel_media_export_media_cache_remove_object (RygelMediaExportMediaCache* self,
                                                   RygelMediaObject* object,
                                                   GError** error);
VALA_EXTERN void rygel_media_export_media_cache_save_container (RygelMediaExportMediaCache* self,
                                                    RygelMediaContainer* container,
                                                    GError** error);
VALA_EXTERN void rygel_media_export_media_cache_save_item (RygelMediaExportMediaCache* self,
                                               RygelMediaFileItem* item,
                                               gboolean override_guarded,
                                               GError** error);
VALA_EXTERN RygelMediaObject* rygel_media_export_media_cache_get_object (RygelMediaExportMediaCache* self,
                                                             const gchar* object_id,
                                                             GError** error);
VALA_EXTERN RygelMediaContainer* rygel_media_export_media_cache_get_container (RygelMediaExportMediaCache* self,
                                                                   const gchar* container_id,
                                                                   GError** error);
VALA_EXTERN gint rygel_media_export_media_cache_get_child_count (RygelMediaExportMediaCache* self,
                                                     const gchar* container_id,
                                                     GError** error);
VALA_EXTERN guint32 rygel_media_export_media_cache_get_update_id (RygelMediaExportMediaCache* self);
VALA_EXTERN void rygel_media_export_media_cache_get_track_properties (RygelMediaExportMediaCache* self,
                                                          const gchar* id,
                                                          guint32* object_update_id,
                                                          guint32* container_update_id,
                                                          guint32* total_deleted_child_count);
VALA_EXTERN gboolean rygel_media_export_media_cache_exists (RygelMediaExportMediaCache* self,
                                                GFile* file,
                                                gint64* timestamp,
                                                gint64* size,
                                                gchar** mime_type,
                                                GError** error);
VALA_EXTERN RygelMediaObjects* rygel_media_export_media_cache_get_children (RygelMediaExportMediaCache* self,
                                                                RygelMediaContainer* container,
                                                                const gchar* sort_criteria,
                                                                glong offset,
                                                                glong max_count,
                                                                GError** error);
VALA_EXTERN RygelMediaObjects* rygel_media_export_media_cache_get_objects_by_search_expression (RygelMediaExportMediaCache* self,
                                                                                    RygelSearchExpression* expression,
                                                                                    const gchar* container_id,
                                                                                    const gchar* sort_criteria,
                                                                                    guint offset,
                                                                                    guint max_count,
                                                                                    guint* total_matches,
                                                                                    GError** error);
VALA_EXTERN glong rygel_media_export_media_cache_get_object_count_by_search_expression (RygelMediaExportMediaCache* self,
                                                                            RygelSearchExpression* expression,
                                                                            const gchar* container_id,
                                                                            GError** error);
VALA_EXTERN glong rygel_media_export_media_cache_get_object_count_by_filter (RygelMediaExportMediaCache* self,
                                                                 const gchar* filter,
                                                                 GArray* args,
                                                                 const gchar* container_id,
                                                                 GError** error);
VALA_EXTERN RygelMediaObjects* rygel_media_export_media_cache_get_objects_by_filter (RygelMediaExportMediaCache* self,
                                                                         const gchar* filter,
                                                                         GArray* args,
                                                                         const gchar* container_id,
                                                                         const gchar* sort_criteria,
                                                                         glong offset,
                                                                         glong max_count,
                                                                         GError** error);
VALA_EXTERN void rygel_media_export_media_cache_debug_statistics (RygelMediaExportMediaCache* self);
VALA_EXTERN GeeArrayList* rygel_media_export_media_cache_get_child_ids (RygelMediaExportMediaCache* self,
                                                            const gchar* container_id,
                                                            GError** error);
VALA_EXTERN GeeList* rygel_media_export_media_cache_get_meta_data_column_by_filter (RygelMediaExportMediaCache* self,
                                                                        const gchar* column,
                                                                        const gchar* filter,
                                                                        GArray* args,
                                                                        glong offset,
                                                                        const gchar* sort_criteria,
                                                                        glong max_count,
                                                                        gboolean add_all_container,
                                                                        GError** error);
VALA_EXTERN GeeList* rygel_media_export_media_cache_get_object_attribute_by_search_expression (RygelMediaExportMediaCache* self,
                                                                                   const gchar* attribute,
                                                                                   RygelSearchExpression* expression,
                                                                                   const gchar* sort_criteria,
                                                                                   glong offset,
                                                                                   guint max_count,
                                                                                   gboolean add_all_container,
                                                                                   GError** error);
VALA_EXTERN gchar* rygel_media_export_media_cache_get_reset_token (RygelMediaExportMediaCache* self);
VALA_EXTERN void rygel_media_export_media_cache_save_reset_token (RygelMediaExportMediaCache* self,
                                                      const gchar* token);
VALA_EXTERN void rygel_media_export_media_cache_drop_virtual_folders (RygelMediaExportMediaCache* self);
VALA_EXTERN void rygel_media_export_media_cache_make_object_guarded (RygelMediaExportMediaCache* self,
                                                         RygelMediaObject* object,
                                                         gboolean guarded);
VALA_EXTERN gchar* rygel_media_export_media_cache_create_reference (RygelMediaExportMediaCache* self,
                                                        RygelMediaObject* object,
                                                        RygelMediaContainer* parent,
                                                        GError** error);
VALA_EXTERN void rygel_media_export_media_cache_ignore (RygelMediaExportMediaCache* self,
                                            GFile* file);
VALA_EXTERN gboolean rygel_media_export_media_cache_is_ignored (RygelMediaExportMediaCache* self,
                                                    GFile* file);
VALA_EXTERN void rygel_media_export_media_cache_rebuild_exists_cache (RygelMediaExportMediaCache* self,
                                                          GError** error);
VALA_EXTERN GQuark metadata_extractor_error_quark (void);
VALA_EXTERN GType metadata_extractor_error_get_type (void) G_GNUC_CONST ;
VALA_EXTERN GType rygel_media_export_metadata_extractor_get_type (void) G_GNUC_CONST ;
G_DEFINE_AUTOPTR_CLEANUP_FUNC (RygelMediaExportMetadataExtractor, g_object_unref)
VALA_EXTERN RygelMediaExportMetadataExtractor* rygel_media_export_metadata_extractor_new (void);
VALA_EXTERN RygelMediaExportMetadataExtractor* rygel_media_export_metadata_extractor_construct (GType object_type);
VALA_EXTERN void rygel_media_export_metadata_extractor_stop (RygelMediaExportMetadataExtractor* self);
VALA_EXTERN void rygel_media_export_metadata_extractor_run (RygelMediaExportMetadataExtractor* self,
                                                GAsyncReadyCallback _callback_,
                                                gpointer _user_data_);
VALA_EXTERN void rygel_media_export_metadata_extractor_run_finish (RygelMediaExportMetadataExtractor* self,
                                                       GAsyncResult* _res_);
VALA_EXTERN void rygel_media_export_metadata_extractor_extract (RygelMediaExportMetadataExtractor* self,
                                                    GFile* file,
                                                    const gchar* content_type);
VALA_EXTERN GType rygel_media_export_trackable_db_container_get_type (void) G_GNUC_CONST ;
G_DEFINE_AUTOPTR_CLEANUP_FUNC (RygelMediaExportTrackableDbContainer, g_object_unref)
VALA_EXTERN GType rygel_media_export_root_container_get_type (void) G_GNUC_CONST ;
G_DEFINE_AUTOPTR_CLEANUP_FUNC (RygelMediaExportRootContainer, g_object_unref)
VALA_EXTERN void rygel_media_export_root_container_ensure_exists (GError** error);
VALA_EXTERN RygelMediaExportRootContainer* rygel_media_export_root_container_get_instance (void);
VALA_EXTERN RygelMediaExportDBContainer* rygel_media_export_root_container_get_filesystem_container (RygelMediaExportRootContainer* self);
VALA_EXTERN void rygel_media_export_root_container_shutdown (RygelMediaExportRootContainer* self);
VALA_EXTERN GType rygel_media_export_recursive_file_monitor_get_type (void) G_GNUC_CONST ;
G_DEFINE_AUTOPTR_CLEANUP_FUNC (RygelMediaExportRecursiveFileMonitor, g_object_unref)
VALA_EXTERN RygelMediaExportRecursiveFileMonitor* rygel_media_export_recursive_file_monitor_new (GCancellable* cancellable);
VALA_EXTERN RygelMediaExportRecursiveFileMonitor* rygel_media_export_recursive_file_monitor_construct (GType object_type,
                                                                                           GCancellable* cancellable);
VALA_EXTERN void rygel_media_export_recursive_file_monitor_on_monitor_changed (RygelMediaExportRecursiveFileMonitor* self,
                                                                   GFile* file,
                                                                   GFile* other_file,
                                                                   GFileMonitorEvent event_type);
VALA_EXTERN void rygel_media_export_recursive_file_monitor_add (RygelMediaExportRecursiveFileMonitor* self,
                                                    GFile* file,
                                                    GAsyncReadyCallback _callback_,
                                                    gpointer _user_data_);
VALA_EXTERN void rygel_media_export_recursive_file_monitor_add_finish (RygelMediaExportRecursiveFileMonitor* self,
                                                           GAsyncResult* _res_);
VALA_EXTERN void rygel_media_export_recursive_file_monitor_cancel (RygelMediaExportRecursiveFileMonitor* self);
VALA_EXTERN GType rygel_media_export_harvesting_task_get_type (void) G_GNUC_CONST ;
G_DEFINE_AUTOPTR_CLEANUP_FUNC (RygelMediaExportHarvestingTask, g_object_unref)
VALA_EXTERN RygelMediaExportHarvestingTask* rygel_media_export_harvesting_task_new (RygelMediaExportRecursiveFileMonitor* monitor,
                                                                        GFile* file,
                                                                        RygelMediaContainer* parent);
VALA_EXTERN RygelMediaExportHarvestingTask* rygel_media_export_harvesting_task_construct (GType object_type,
                                                                              RygelMediaExportRecursiveFileMonitor* monitor,
                                                                              GFile* file,
                                                                              RygelMediaContainer* parent);
VALA_EXTERN void rygel_media_export_harvesting_task_cancel (RygelMediaExportHarvestingTask* self);
VALA_EXTERN RygelMediaExportTrackableDbContainer* rygel_media_export_trackable_db_container_new (const gchar* id,
                                                                                     const gchar* title);
VALA_EXTERN RygelMediaExportTrackableDbContainer* rygel_media_export_trackable_db_container_construct (GType object_type,
                                                                                           const gchar* id,
                                                                                           const gchar* title);
VALA_EXTERN void rygel_media_export_trackable_db_container_remove_child (RygelMediaExportTrackableDbContainer* self,
                                                             RygelMediaObject* object,
                                                             GAsyncReadyCallback _callback_,
                                                             gpointer _user_data_);
VALA_EXTERN void rygel_media_export_trackable_db_container_remove_child_finish (RygelMediaExportTrackableDbContainer* self,
                                                                    GAsyncResult* _res_);
VALA_EXTERN gchar* rygel_media_export_trackable_db_container_get_service_reset_token (RygelMediaExportTrackableDbContainer* self);
VALA_EXTERN void rygel_media_export_trackable_db_container_set_service_reset_token (RygelMediaExportTrackableDbContainer* self,
                                                                        const gchar* token);
VALA_EXTERN guint32 rygel_media_export_trackable_db_container_get_system_update_id (RygelMediaExportTrackableDbContainer* self);
VALA_EXTERN GType rygel_media_export_updatable_object_get_type (void) G_GNUC_CONST ;
G_DEFINE_AUTOPTR_CLEANUP_FUNC (RygelMediaExportUpdatableObject, g_object_unref)
VALA_EXTERN void rygel_media_export_updatable_object_non_overriding_commit (RygelMediaExportUpdatableObject* self,
                                                                GAsyncReadyCallback _callback_,
                                                                gpointer _user_data_);
VALA_EXTERN void rygel_media_export_updatable_object_non_overriding_commit_finish (RygelMediaExportUpdatableObject* self,
                                                                       GAsyncResult* _res_,
                                                                       GError** error);
VALA_EXTERN void rygel_media_export_updatable_object_commit_custom (RygelMediaExportUpdatableObject* self,
                                                        gboolean override_guarded,
                                                        GAsyncReadyCallback _callback_,
                                                        gpointer _user_data_);
VALA_EXTERN void rygel_media_export_updatable_object_commit_custom_finish (RygelMediaExportUpdatableObject* self,
                                                               GAsyncResult* _res_,
                                                               GError** error);

G_END_DECLS

#endif
