/* shotwell-internal-video-metadata-handling.h generated by valac 0.56.19, the Vala compiler, do not modify */

#ifndef __SRC_VIDEO_SUPPORT_SHOTWELL_INTERNAL_VIDEO_METADATA_HANDLING_H__
#define __SRC_VIDEO_SUPPORT_SHOTWELL_INTERNAL_VIDEO_METADATA_HANDLING_H__

#include <glib-object.h>
#include <glib.h>
#include <gio/gio.h>
#include "metadata.h"
#include <stdlib.h>
#include <string.h>

G_BEGIN_DECLS

#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 QUICK_TIME_METADATA_LOADER_QUICKTIME_EPOCH_ADJUSTMENT ((gint64) 2082844800)

#define TYPE_AVI_METADATA_LOADER (avi_metadata_loader_get_type ())
#define AVI_METADATA_LOADER(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_AVI_METADATA_LOADER, AVIMetadataLoader))
#define AVI_METADATA_LOADER_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_AVI_METADATA_LOADER, AVIMetadataLoaderClass))
#define IS_AVI_METADATA_LOADER(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_AVI_METADATA_LOADER))
#define IS_AVI_METADATA_LOADER_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_AVI_METADATA_LOADER))
#define AVI_METADATA_LOADER_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_AVI_METADATA_LOADER, AVIMetadataLoaderClass))

typedef struct _AVIMetadataLoader AVIMetadataLoader;
typedef struct _AVIMetadataLoaderClass AVIMetadataLoaderClass;
typedef struct _AVIMetadataLoaderPrivate AVIMetadataLoaderPrivate;

#define TYPE_QUICK_TIME_METADATA_LOADER (quick_time_metadata_loader_get_type ())
#define QUICK_TIME_METADATA_LOADER(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_QUICK_TIME_METADATA_LOADER, QuickTimeMetadataLoader))
#define QUICK_TIME_METADATA_LOADER_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_QUICK_TIME_METADATA_LOADER, QuickTimeMetadataLoaderClass))
#define IS_QUICK_TIME_METADATA_LOADER(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_QUICK_TIME_METADATA_LOADER))
#define IS_QUICK_TIME_METADATA_LOADER_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_QUICK_TIME_METADATA_LOADER))
#define QUICK_TIME_METADATA_LOADER_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_QUICK_TIME_METADATA_LOADER, QuickTimeMetadataLoaderClass))

typedef struct _QuickTimeMetadataLoader QuickTimeMetadataLoader;
typedef struct _QuickTimeMetadataLoaderClass QuickTimeMetadataLoaderClass;
typedef struct _QuickTimeMetadataLoaderPrivate QuickTimeMetadataLoaderPrivate;

struct _AVIMetadataLoader {
	GTypeInstance parent_instance;
	volatile int ref_count;
	AVIMetadataLoaderPrivate * priv;
};

struct _AVIMetadataLoaderClass {
	GTypeClass parent_class;
	void (*finalize) (AVIMetadataLoader *self);
};

struct _QuickTimeMetadataLoader {
	GTypeInstance parent_instance;
	volatile int ref_count;
	QuickTimeMetadataLoaderPrivate * priv;
};

struct _QuickTimeMetadataLoaderClass {
	GTypeClass parent_class;
	void (*finalize) (QuickTimeMetadataLoader *self);
};

VALA_EXTERN gpointer avi_metadata_loader_ref (gpointer instance);
VALA_EXTERN void avi_metadata_loader_unref (gpointer instance);
VALA_EXTERN GParamSpec* param_spec_avi_metadata_loader (const gchar* name,
                                            const gchar* nick,
                                            const gchar* blurb,
                                            GType object_type,
                                            GParamFlags flags);
VALA_EXTERN void value_set_avi_metadata_loader (GValue* value,
                                    gpointer v_object);
VALA_EXTERN void value_take_avi_metadata_loader (GValue* value,
                                     gpointer v_object);
VALA_EXTERN gpointer value_get_avi_metadata_loader (const GValue* value);
VALA_EXTERN GType avi_metadata_loader_get_type (void) G_GNUC_CONST ;
G_DEFINE_AUTOPTR_CLEANUP_FUNC (AVIMetadataLoader, avi_metadata_loader_unref)
VALA_EXTERN GTimeZone* avi_metadata_loader_local;
VALA_EXTERN AVIMetadataLoader* avi_metadata_loader_new (GFile* file);
VALA_EXTERN AVIMetadataLoader* avi_metadata_loader_construct (GType object_type,
                                                  GFile* file);
VALA_EXTERN MetadataDateTime* avi_metadata_loader_get_creation_date_time (AVIMetadataLoader* self);
VALA_EXTERN gchar* avi_metadata_loader_get_title (AVIMetadataLoader* self);
VALA_EXTERN gboolean avi_metadata_loader_is_supported (AVIMetadataLoader* self);
VALA_EXTERN gpointer quick_time_metadata_loader_ref (gpointer instance);
VALA_EXTERN void quick_time_metadata_loader_unref (gpointer instance);
VALA_EXTERN GParamSpec* param_spec_quick_time_metadata_loader (const gchar* name,
                                                   const gchar* nick,
                                                   const gchar* blurb,
                                                   GType object_type,
                                                   GParamFlags flags);
VALA_EXTERN void value_set_quick_time_metadata_loader (GValue* value,
                                           gpointer v_object);
VALA_EXTERN void value_take_quick_time_metadata_loader (GValue* value,
                                            gpointer v_object);
VALA_EXTERN gpointer value_get_quick_time_metadata_loader (const GValue* value);
VALA_EXTERN GType quick_time_metadata_loader_get_type (void) G_GNUC_CONST ;
G_DEFINE_AUTOPTR_CLEANUP_FUNC (QuickTimeMetadataLoader, quick_time_metadata_loader_unref)
VALA_EXTERN QuickTimeMetadataLoader* quick_time_metadata_loader_new (GFile* file);
VALA_EXTERN QuickTimeMetadataLoader* quick_time_metadata_loader_construct (GType object_type,
                                                               GFile* file);
VALA_EXTERN MetadataDateTime* quick_time_metadata_loader_get_creation_date_time (QuickTimeMetadataLoader* self);
VALA_EXTERN gchar* quick_time_metadata_loader_get_title (QuickTimeMetadataLoader* self);
VALA_EXTERN gboolean quick_time_metadata_loader_is_supported (QuickTimeMetadataLoader* self);
VALA_EXTERN void skip_uint64 (GInputStream* input,
                  guint64 skip_amount,
                  GError** error);

G_END_DECLS

#endif
