/* DataImportSource.c generated by valac 0.40.4, the Vala compiler
 * generated from DataImportSource.vala, do not modify */

/* Copyright 2016 Software Freedom Conservancy Inc.
 *
 * This software is licensed under the GNU Lesser General Public License
 * (version 2.1 or later).  See the COPYING file in this distribution.
 */


#include <glib.h>
#include <glib-object.h>
#include "shotwell-plugin-dev-1.0.h"
#include <stdlib.h>
#include <string.h>
#include <time.h>
#include <gio/gio.h>
#include <gobject/gvaluecollector.h>


#define SPIT_DATA_IMPORTS_TYPE_DATA_IMPORT_SOURCE (spit_data_imports_data_import_source_get_type ())
#define SPIT_DATA_IMPORTS_DATA_IMPORT_SOURCE(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), SPIT_DATA_IMPORTS_TYPE_DATA_IMPORT_SOURCE, SpitDataImportsDataImportSource))
#define SPIT_DATA_IMPORTS_DATA_IMPORT_SOURCE_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), SPIT_DATA_IMPORTS_TYPE_DATA_IMPORT_SOURCE, SpitDataImportsDataImportSourceClass))
#define SPIT_DATA_IMPORTS_IS_DATA_IMPORT_SOURCE(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), SPIT_DATA_IMPORTS_TYPE_DATA_IMPORT_SOURCE))
#define SPIT_DATA_IMPORTS_IS_DATA_IMPORT_SOURCE_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), SPIT_DATA_IMPORTS_TYPE_DATA_IMPORT_SOURCE))
#define SPIT_DATA_IMPORTS_DATA_IMPORT_SOURCE_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), SPIT_DATA_IMPORTS_TYPE_DATA_IMPORT_SOURCE, SpitDataImportsDataImportSourceClass))

typedef struct _SpitDataImportsDataImportSource SpitDataImportsDataImportSource;
typedef struct _SpitDataImportsDataImportSourceClass SpitDataImportsDataImportSourceClass;
typedef struct _SpitDataImportsDataImportSourcePrivate SpitDataImportsDataImportSourcePrivate;

#define TYPE_METADATA_DATE_TIME (metadata_date_time_get_type ())
#define METADATA_DATE_TIME(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_METADATA_DATE_TIME, MetadataDateTime))
#define METADATA_DATE_TIME_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_METADATA_DATE_TIME, MetadataDateTimeClass))
#define IS_METADATA_DATE_TIME(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_METADATA_DATE_TIME))
#define IS_METADATA_DATE_TIME_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_METADATA_DATE_TIME))
#define METADATA_DATE_TIME_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_METADATA_DATE_TIME, MetadataDateTimeClass))

typedef struct _MetadataDateTime MetadataDateTime;
typedef struct _MetadataDateTimeClass MetadataDateTimeClass;
#define _g_object_unref0(var) ((var == NULL) ? NULL : (var = (g_object_unref (var), NULL)))
#define _g_free0(var) (var = (g_free (var), NULL))
#define _metadata_date_time_unref0(var) ((var == NULL) ? NULL : (var = (metadata_date_time_unref (var), NULL)))

#define TYPE_MEDIA_METADATA (media_metadata_get_type ())
#define MEDIA_METADATA(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_MEDIA_METADATA, MediaMetadata))
#define MEDIA_METADATA_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_MEDIA_METADATA, MediaMetadataClass))
#define IS_MEDIA_METADATA(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_MEDIA_METADATA))
#define IS_MEDIA_METADATA_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_MEDIA_METADATA))
#define MEDIA_METADATA_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_MEDIA_METADATA, MediaMetadataClass))

typedef struct _MediaMetadata MediaMetadata;
typedef struct _MediaMetadataClass MediaMetadataClass;

#define TYPE_PHOTO_METADATA (photo_metadata_get_type ())
#define PHOTO_METADATA(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_PHOTO_METADATA, PhotoMetadata))
#define PHOTO_METADATA_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_PHOTO_METADATA, PhotoMetadataClass))
#define IS_PHOTO_METADATA(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_PHOTO_METADATA))
#define IS_PHOTO_METADATA_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_PHOTO_METADATA))
#define PHOTO_METADATA_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_PHOTO_METADATA, PhotoMetadataClass))

typedef struct _PhotoMetadata PhotoMetadata;
typedef struct _PhotoMetadataClass PhotoMetadataClass;
#define _media_metadata_unref0(var) ((var == NULL) ? NULL : (var = (media_metadata_unref (var), NULL)))
#define _g_error_free0(var) ((var == NULL) ? NULL : (var = (g_error_free (var), NULL)))

#define TYPE_PHOTO_FILE_FORMAT (photo_file_format_get_type ())
typedef struct _SpitDataImportsParamSpecDataImportSource SpitDataImportsParamSpecDataImportSource;

struct _SpitDataImportsDataImportSource {
	GTypeInstance parent_instance;
	volatile int ref_count;
	SpitDataImportsDataImportSourcePrivate * priv;
};

struct _SpitDataImportsDataImportSourceClass {
	GTypeClass parent_class;
	void (*finalize) (SpitDataImportsDataImportSource *self);
};

struct _SpitDataImportsDataImportSourcePrivate {
	gboolean backing_file_found;
	SpitDataImportsImportableMediaItem* db_photo;
	gchar* title;
	gchar* preview_md5;
	guint64 file_size;
	time_t modification_time;
	MetadataDateTime* exposure_time;
};

typedef enum  {
	PHOTO_FILE_FORMAT_JFIF,
	PHOTO_FILE_FORMAT_RAW,
	PHOTO_FILE_FORMAT_PNG,
	PHOTO_FILE_FORMAT_TIFF,
	PHOTO_FILE_FORMAT_BMP,
	PHOTO_FILE_FORMAT_UNKNOWN
} PhotoFileFormat;

struct _SpitDataImportsParamSpecDataImportSource {
	GParamSpec parent_instance;
};


static gpointer spit_data_imports_data_import_source_parent_class = NULL;

gpointer spit_data_imports_data_import_source_ref (gpointer instance);
void spit_data_imports_data_import_source_unref (gpointer instance);
GParamSpec* spit_data_imports_param_spec_data_import_source (const gchar* name,
                                                             const gchar* nick,
                                                             const gchar* blurb,
                                                             GType object_type,
                                                             GParamFlags flags);
void spit_data_imports_value_set_data_import_source (GValue* value,
                                                     gpointer v_object);
void spit_data_imports_value_take_data_import_source (GValue* value,
                                                      gpointer v_object);
gpointer spit_data_imports_value_get_data_import_source (const GValue* value);
GType spit_data_imports_data_import_source_get_type (void) G_GNUC_CONST;
gpointer metadata_date_time_ref (gpointer instance);
void metadata_date_time_unref (gpointer instance);
GParamSpec* param_spec_metadata_date_time (const gchar* name,
                                           const gchar* nick,
                                           const gchar* blurb,
                                           GType object_type,
                                           GParamFlags flags);
void value_set_metadata_date_time (GValue* value,
                                   gpointer v_object);
void value_take_metadata_date_time (GValue* value,
                                    gpointer v_object);
gpointer value_get_metadata_date_time (const GValue* value);
GType metadata_date_time_get_type (void) G_GNUC_CONST;
#define SPIT_DATA_IMPORTS_DATA_IMPORT_SOURCE_GET_PRIVATE(o) (G_TYPE_INSTANCE_GET_PRIVATE ((o), SPIT_DATA_IMPORTS_TYPE_DATA_IMPORT_SOURCE, SpitDataImportsDataImportSourcePrivate))
SpitDataImportsDataImportSource* spit_data_imports_data_import_source_new (SpitDataImportsImportableMediaItem* db_photo);
SpitDataImportsDataImportSource* spit_data_imports_data_import_source_construct (GType object_type,
                                                                                 SpitDataImportsImportableMediaItem* db_photo);
gpointer media_metadata_ref (gpointer instance);
void media_metadata_unref (gpointer instance);
GParamSpec* param_spec_media_metadata (const gchar* name,
                                       const gchar* nick,
                                       const gchar* blurb,
                                       GType object_type,
                                       GParamFlags flags);
void value_set_media_metadata (GValue* value,
                               gpointer v_object);
void value_take_media_metadata (GValue* value,
                                gpointer v_object);
gpointer value_get_media_metadata (const GValue* value);
GType media_metadata_get_type (void) G_GNUC_CONST;
GType photo_metadata_get_type (void) G_GNUC_CONST;
PhotoMetadata* photo_metadata_new (void);
PhotoMetadata* photo_metadata_construct (GType object_type);
void media_metadata_read_from_file (MediaMetadata* self,
                                    GFile* file,
                                    GError** error);
gchar* spit_data_imports_data_import_source_get_filename (SpitDataImportsDataImportSource* self);
gchar* media_metadata_get_title (MediaMetadata* self);
MetadataDateTime* metadata_date_time_new (time_t timestamp);
MetadataDateTime* metadata_date_time_construct (GType object_type,
                                                time_t timestamp);
MetadataDateTime* photo_metadata_get_exposure_date_time (PhotoMetadata* self);
gchar* photo_metadata_thumbnail_hash (PhotoMetadata* self);
guint64 query_total_file_size (GFile* file_or_dir,
                               GCancellable* cancellable,
                               GError** error);
time_t query_file_modified (GFile* file,
                            GError** error);
gchar* spit_data_imports_data_import_source_get_fulldir (SpitDataImportsDataImportSource* self);
GFile* spit_data_imports_data_import_source_get_file (SpitDataImportsDataImportSource* self);
gchar* spit_data_imports_data_import_source_get_name (SpitDataImportsDataImportSource* self);
gboolean is_string_empty (const gchar* s);
gchar* spit_data_imports_data_import_source_get_title (SpitDataImportsDataImportSource* self);
GType photo_file_format_get_type (void) G_GNUC_CONST;
PhotoFileFormat spit_data_imports_data_import_source_get_file_format (SpitDataImportsDataImportSource* self);
PhotoFileFormat photo_file_format_get_by_basename_extension (const gchar* basename);
gchar* spit_data_imports_data_import_source_to_string (SpitDataImportsDataImportSource* self);
time_t spit_data_imports_data_import_source_get_exposure_time (SpitDataImportsDataImportSource* self);
time_t metadata_date_time_get_timestamp (MetadataDateTime* self);
guint64 spit_data_imports_data_import_source_get_filesize (SpitDataImportsDataImportSource* self);
SpitDataImportsImportableMediaItem* spit_data_imports_data_import_source_get_photo (SpitDataImportsDataImportSource* self);
gboolean spit_data_imports_data_import_source_is_already_imported (SpitDataImportsDataImportSource* self);
gboolean library_photo_has_nontrash_duplicate (GFile* file,
                                               const gchar* thumbnail_md5,
                                               const gchar* full_md5,
                                               PhotoFileFormat file_format);
gboolean spit_data_imports_data_import_source_was_backing_file_found (SpitDataImportsDataImportSource* self);
static void spit_data_imports_data_import_source_finalize (SpitDataImportsDataImportSource * obj);


static gpointer
_g_object_ref0 (gpointer self)
{
#line 27 "/home/jens/Source/shotwell/src/data_imports/DataImportSource.vala"
	return self ? g_object_ref (self) : NULL;
#line 196 "DataImportSource.c"
}


static gpointer
_metadata_date_time_ref0 (gpointer self)
{
#line 59 "/home/jens/Source/shotwell/src/data_imports/DataImportSource.vala"
	return self ? metadata_date_time_ref (self) : NULL;
#line 205 "DataImportSource.c"
}


SpitDataImportsDataImportSource*
spit_data_imports_data_import_source_construct (GType object_type,
                                                SpitDataImportsImportableMediaItem* db_photo)
{
	SpitDataImportsDataImportSource* self = NULL;
	SpitDataImportsImportableMediaItem* _tmp0_;
	gchar* folder_path = NULL;
	gchar* _tmp1_;
	gchar* filename = NULL;
	gchar* _tmp2_;
	GFile* photo = NULL;
	gboolean _tmp3_ = FALSE;
	const gchar* _tmp4_;
	gboolean _tmp14_ = FALSE;
	GFile* _tmp15_;
	GError * _inner_error_ = NULL;
#line 26 "/home/jens/Source/shotwell/src/data_imports/DataImportSource.vala"
	g_return_val_if_fail (SPIT_DATA_IMPORTS_IS_IMPORTABLE_MEDIA_ITEM (db_photo), NULL);
#line 26 "/home/jens/Source/shotwell/src/data_imports/DataImportSource.vala"
	self = (SpitDataImportsDataImportSource*) g_type_create_instance (object_type);
#line 27 "/home/jens/Source/shotwell/src/data_imports/DataImportSource.vala"
	_tmp0_ = _g_object_ref0 (db_photo);
#line 27 "/home/jens/Source/shotwell/src/data_imports/DataImportSource.vala"
	_g_object_unref0 (self->priv->db_photo);
#line 27 "/home/jens/Source/shotwell/src/data_imports/DataImportSource.vala"
	self->priv->db_photo = _tmp0_;
#line 31 "/home/jens/Source/shotwell/src/data_imports/DataImportSource.vala"
	_tmp1_ = spit_data_imports_importable_media_item_get_folder_path (db_photo);
#line 31 "/home/jens/Source/shotwell/src/data_imports/DataImportSource.vala"
	folder_path = _tmp1_;
#line 32 "/home/jens/Source/shotwell/src/data_imports/DataImportSource.vala"
	_tmp2_ = spit_data_imports_importable_media_item_get_filename (db_photo);
#line 32 "/home/jens/Source/shotwell/src/data_imports/DataImportSource.vala"
	filename = _tmp2_;
#line 33 "/home/jens/Source/shotwell/src/data_imports/DataImportSource.vala"
	photo = NULL;
#line 34 "/home/jens/Source/shotwell/src/data_imports/DataImportSource.vala"
	_tmp4_ = folder_path;
#line 34 "/home/jens/Source/shotwell/src/data_imports/DataImportSource.vala"
	if (_tmp4_ != NULL) {
#line 249 "DataImportSource.c"
		const gchar* _tmp5_;
#line 34 "/home/jens/Source/shotwell/src/data_imports/DataImportSource.vala"
		_tmp5_ = filename;
#line 34 "/home/jens/Source/shotwell/src/data_imports/DataImportSource.vala"
		_tmp3_ = _tmp5_ != NULL;
#line 255 "DataImportSource.c"
	} else {
#line 34 "/home/jens/Source/shotwell/src/data_imports/DataImportSource.vala"
		_tmp3_ = FALSE;
#line 259 "DataImportSource.c"
	}
#line 34 "/home/jens/Source/shotwell/src/data_imports/DataImportSource.vala"
	if (_tmp3_) {
#line 263 "DataImportSource.c"
		gchar* _tmp6_;
		gchar* _tmp7_;
		GFile* _tmp8_;
		GFile* _tmp9_;
		gchar* _tmp10_;
		gchar* _tmp11_;
		GFile* _tmp12_;
		GFile* _tmp13_;
#line 35 "/home/jens/Source/shotwell/src/data_imports/DataImportSource.vala"
		_tmp6_ = spit_data_imports_importable_media_item_get_folder_path (db_photo);
#line 35 "/home/jens/Source/shotwell/src/data_imports/DataImportSource.vala"
		_tmp7_ = _tmp6_;
#line 35 "/home/jens/Source/shotwell/src/data_imports/DataImportSource.vala"
		_tmp8_ = g_file_new_for_path (_tmp7_);
#line 35 "/home/jens/Source/shotwell/src/data_imports/DataImportSource.vala"
		_tmp9_ = _tmp8_;
#line 35 "/home/jens/Source/shotwell/src/data_imports/DataImportSource.vala"
		_tmp10_ = spit_data_imports_importable_media_item_get_filename (db_photo);
#line 35 "/home/jens/Source/shotwell/src/data_imports/DataImportSource.vala"
		_tmp11_ = _tmp10_;
#line 35 "/home/jens/Source/shotwell/src/data_imports/DataImportSource.vala"
		_tmp12_ = g_file_get_child (_tmp9_, _tmp11_);
#line 35 "/home/jens/Source/shotwell/src/data_imports/DataImportSource.vala"
		_g_object_unref0 (photo);
#line 35 "/home/jens/Source/shotwell/src/data_imports/DataImportSource.vala"
		photo = _tmp12_;
#line 35 "/home/jens/Source/shotwell/src/data_imports/DataImportSource.vala"
		_g_free0 (_tmp11_);
#line 35 "/home/jens/Source/shotwell/src/data_imports/DataImportSource.vala"
		_g_object_unref0 (_tmp9_);
#line 35 "/home/jens/Source/shotwell/src/data_imports/DataImportSource.vala"
		_g_free0 (_tmp7_);
#line 38 "/home/jens/Source/shotwell/src/data_imports/DataImportSource.vala"
		_tmp13_ = photo;
#line 38 "/home/jens/Source/shotwell/src/data_imports/DataImportSource.vala"
		self->priv->backing_file_found = g_file_query_exists (_tmp13_, NULL);
#line 300 "DataImportSource.c"
	} else {
#line 40 "/home/jens/Source/shotwell/src/data_imports/DataImportSource.vala"
		self->priv->backing_file_found = FALSE;
#line 304 "DataImportSource.c"
	}
#line 43 "/home/jens/Source/shotwell/src/data_imports/DataImportSource.vala"
	_tmp15_ = photo;
#line 43 "/home/jens/Source/shotwell/src/data_imports/DataImportSource.vala"
	if (_tmp15_ != NULL) {
#line 310 "DataImportSource.c"
		gboolean _tmp16_;
#line 43 "/home/jens/Source/shotwell/src/data_imports/DataImportSource.vala"
		_tmp16_ = self->priv->backing_file_found;
#line 43 "/home/jens/Source/shotwell/src/data_imports/DataImportSource.vala"
		_tmp14_ = _tmp16_;
#line 316 "DataImportSource.c"
	} else {
#line 43 "/home/jens/Source/shotwell/src/data_imports/DataImportSource.vala"
		_tmp14_ = FALSE;
#line 320 "DataImportSource.c"
	}
#line 43 "/home/jens/Source/shotwell/src/data_imports/DataImportSource.vala"
	if (_tmp14_) {
#line 324 "DataImportSource.c"
		PhotoMetadata* metadata = NULL;
		PhotoMetadata* _tmp17_;
		gchar* _tmp24_;
		const gchar* _tmp25_;
		time_t* date_time = NULL;
		time_t* _tmp31_;
		time_t* _tmp32_;
		PhotoMetadata* _tmp40_;
#line 44 "/home/jens/Source/shotwell/src/data_imports/DataImportSource.vala"
		_tmp17_ = photo_metadata_new ();
#line 44 "/home/jens/Source/shotwell/src/data_imports/DataImportSource.vala"
		metadata = _tmp17_;
#line 337 "DataImportSource.c"
		{
			PhotoMetadata* _tmp18_;
			GFile* _tmp19_;
#line 46 "/home/jens/Source/shotwell/src/data_imports/DataImportSource.vala"
			_tmp18_ = metadata;
#line 46 "/home/jens/Source/shotwell/src/data_imports/DataImportSource.vala"
			_tmp19_ = photo;
#line 46 "/home/jens/Source/shotwell/src/data_imports/DataImportSource.vala"
			media_metadata_read_from_file (G_TYPE_CHECK_INSTANCE_CAST (_tmp18_, TYPE_MEDIA_METADATA, MediaMetadata), _tmp19_, &_inner_error_);
#line 46 "/home/jens/Source/shotwell/src/data_imports/DataImportSource.vala"
			if (G_UNLIKELY (_inner_error_ != NULL)) {
#line 349 "DataImportSource.c"
				goto __catch230_g_error;
			}
		}
		goto __finally230;
		__catch230_g_error:
		{
			GError* e = NULL;
			gchar* _tmp20_;
			gchar* _tmp21_;
			GError* _tmp22_;
			const gchar* _tmp23_;
#line 45 "/home/jens/Source/shotwell/src/data_imports/DataImportSource.vala"
			e = _inner_error_;
#line 45 "/home/jens/Source/shotwell/src/data_imports/DataImportSource.vala"
			_inner_error_ = NULL;
#line 48 "/home/jens/Source/shotwell/src/data_imports/DataImportSource.vala"
			_tmp20_ = spit_data_imports_data_import_source_get_filename (self);
#line 48 "/home/jens/Source/shotwell/src/data_imports/DataImportSource.vala"
			_tmp21_ = _tmp20_;
#line 48 "/home/jens/Source/shotwell/src/data_imports/DataImportSource.vala"
			_tmp22_ = e;
#line 48 "/home/jens/Source/shotwell/src/data_imports/DataImportSource.vala"
			_tmp23_ = _tmp22_->message;
#line 48 "/home/jens/Source/shotwell/src/data_imports/DataImportSource.vala"
			g_warning ("DataImportSource.vala:48: Could not get file metadata for %s: %s", _tmp21_, _tmp23_);
#line 48 "/home/jens/Source/shotwell/src/data_imports/DataImportSource.vala"
			_g_free0 (_tmp21_);
#line 49 "/home/jens/Source/shotwell/src/data_imports/DataImportSource.vala"
			_media_metadata_unref0 (metadata);
#line 49 "/home/jens/Source/shotwell/src/data_imports/DataImportSource.vala"
			metadata = NULL;
#line 45 "/home/jens/Source/shotwell/src/data_imports/DataImportSource.vala"
			_g_error_free0 (e);
#line 383 "DataImportSource.c"
		}
		__finally230:
#line 45 "/home/jens/Source/shotwell/src/data_imports/DataImportSource.vala"
		if (G_UNLIKELY (_inner_error_ != NULL)) {
#line 45 "/home/jens/Source/shotwell/src/data_imports/DataImportSource.vala"
			_media_metadata_unref0 (metadata);
#line 45 "/home/jens/Source/shotwell/src/data_imports/DataImportSource.vala"
			_g_object_unref0 (photo);
#line 45 "/home/jens/Source/shotwell/src/data_imports/DataImportSource.vala"
			_g_free0 (filename);
#line 45 "/home/jens/Source/shotwell/src/data_imports/DataImportSource.vala"
			_g_free0 (folder_path);
#line 45 "/home/jens/Source/shotwell/src/data_imports/DataImportSource.vala"
			g_critical ("file %s: line %d: uncaught error: %s (%s, %d)", __FILE__, __LINE__, _inner_error_->message, g_quark_to_string (_inner_error_->domain), _inner_error_->code);
#line 45 "/home/jens/Source/shotwell/src/data_imports/DataImportSource.vala"
			g_clear_error (&_inner_error_);
#line 45 "/home/jens/Source/shotwell/src/data_imports/DataImportSource.vala"
			return NULL;
#line 402 "DataImportSource.c"
		}
#line 51 "/home/jens/Source/shotwell/src/data_imports/DataImportSource.vala"
		_tmp24_ = spit_data_imports_importable_media_item_get_title (db_photo);
#line 51 "/home/jens/Source/shotwell/src/data_imports/DataImportSource.vala"
		_g_free0 (self->priv->title);
#line 51 "/home/jens/Source/shotwell/src/data_imports/DataImportSource.vala"
		self->priv->title = _tmp24_;
#line 52 "/home/jens/Source/shotwell/src/data_imports/DataImportSource.vala"
		_tmp25_ = self->priv->title;
#line 52 "/home/jens/Source/shotwell/src/data_imports/DataImportSource.vala"
		if (_tmp25_ == NULL) {
#line 414 "DataImportSource.c"
			gchar* _tmp26_ = NULL;
			PhotoMetadata* _tmp27_;
			gchar* _tmp30_;
#line 53 "/home/jens/Source/shotwell/src/data_imports/DataImportSource.vala"
			_tmp27_ = metadata;
#line 53 "/home/jens/Source/shotwell/src/data_imports/DataImportSource.vala"
			if (_tmp27_ != NULL) {
#line 422 "DataImportSource.c"
				PhotoMetadata* _tmp28_;
				gchar* _tmp29_;
#line 53 "/home/jens/Source/shotwell/src/data_imports/DataImportSource.vala"
				_tmp28_ = metadata;
#line 53 "/home/jens/Source/shotwell/src/data_imports/DataImportSource.vala"
				_tmp29_ = media_metadata_get_title (G_TYPE_CHECK_INSTANCE_CAST (_tmp28_, TYPE_MEDIA_METADATA, MediaMetadata));
#line 53 "/home/jens/Source/shotwell/src/data_imports/DataImportSource.vala"
				_g_free0 (_tmp26_);
#line 53 "/home/jens/Source/shotwell/src/data_imports/DataImportSource.vala"
				_tmp26_ = _tmp29_;
#line 433 "DataImportSource.c"
			} else {
#line 53 "/home/jens/Source/shotwell/src/data_imports/DataImportSource.vala"
				_g_free0 (_tmp26_);
#line 53 "/home/jens/Source/shotwell/src/data_imports/DataImportSource.vala"
				_tmp26_ = NULL;
#line 439 "DataImportSource.c"
			}
#line 53 "/home/jens/Source/shotwell/src/data_imports/DataImportSource.vala"
			_tmp30_ = g_strdup (_tmp26_);
#line 53 "/home/jens/Source/shotwell/src/data_imports/DataImportSource.vala"
			_g_free0 (self->priv->title);
#line 53 "/home/jens/Source/shotwell/src/data_imports/DataImportSource.vala"
			self->priv->title = _tmp30_;
#line 52 "/home/jens/Source/shotwell/src/data_imports/DataImportSource.vala"
			_g_free0 (_tmp26_);
#line 449 "DataImportSource.c"
		}
#line 55 "/home/jens/Source/shotwell/src/data_imports/DataImportSource.vala"
		_tmp31_ = spit_data_imports_importable_media_item_get_exposure_time (db_photo);
#line 55 "/home/jens/Source/shotwell/src/data_imports/DataImportSource.vala"
		date_time = _tmp31_;
#line 56 "/home/jens/Source/shotwell/src/data_imports/DataImportSource.vala"
		_tmp32_ = date_time;
#line 56 "/home/jens/Source/shotwell/src/data_imports/DataImportSource.vala"
		if (_tmp32_ != NULL) {
#line 459 "DataImportSource.c"
			time_t* _tmp33_;
			MetadataDateTime* _tmp34_;
#line 57 "/home/jens/Source/shotwell/src/data_imports/DataImportSource.vala"
			_tmp33_ = date_time;
#line 57 "/home/jens/Source/shotwell/src/data_imports/DataImportSource.vala"
			_tmp34_ = metadata_date_time_new (*_tmp33_);
#line 57 "/home/jens/Source/shotwell/src/data_imports/DataImportSource.vala"
			_metadata_date_time_unref0 (self->priv->exposure_time);
#line 57 "/home/jens/Source/shotwell/src/data_imports/DataImportSource.vala"
			self->priv->exposure_time = _tmp34_;
#line 470 "DataImportSource.c"
		} else {
			MetadataDateTime* _tmp35_ = NULL;
			PhotoMetadata* _tmp36_;
			MetadataDateTime* _tmp39_;
#line 59 "/home/jens/Source/shotwell/src/data_imports/DataImportSource.vala"
			_tmp36_ = metadata;
#line 59 "/home/jens/Source/shotwell/src/data_imports/DataImportSource.vala"
			if (_tmp36_ != NULL) {
#line 479 "DataImportSource.c"
				PhotoMetadata* _tmp37_;
				MetadataDateTime* _tmp38_;
#line 59 "/home/jens/Source/shotwell/src/data_imports/DataImportSource.vala"
				_tmp37_ = metadata;
#line 59 "/home/jens/Source/shotwell/src/data_imports/DataImportSource.vala"
				_tmp38_ = photo_metadata_get_exposure_date_time (_tmp37_);
#line 59 "/home/jens/Source/shotwell/src/data_imports/DataImportSource.vala"
				_metadata_date_time_unref0 (_tmp35_);
#line 59 "/home/jens/Source/shotwell/src/data_imports/DataImportSource.vala"
				_tmp35_ = _tmp38_;
#line 490 "DataImportSource.c"
			} else {
#line 59 "/home/jens/Source/shotwell/src/data_imports/DataImportSource.vala"
				_metadata_date_time_unref0 (_tmp35_);
#line 59 "/home/jens/Source/shotwell/src/data_imports/DataImportSource.vala"
				_tmp35_ = NULL;
#line 496 "DataImportSource.c"
			}
#line 59 "/home/jens/Source/shotwell/src/data_imports/DataImportSource.vala"
			_tmp39_ = _metadata_date_time_ref0 (_tmp35_);
#line 59 "/home/jens/Source/shotwell/src/data_imports/DataImportSource.vala"
			_metadata_date_time_unref0 (self->priv->exposure_time);
#line 59 "/home/jens/Source/shotwell/src/data_imports/DataImportSource.vala"
			self->priv->exposure_time = _tmp39_;
#line 56 "/home/jens/Source/shotwell/src/data_imports/DataImportSource.vala"
			_metadata_date_time_unref0 (_tmp35_);
#line 506 "DataImportSource.c"
		}
#line 62 "/home/jens/Source/shotwell/src/data_imports/DataImportSource.vala"
		_tmp40_ = metadata;
#line 62 "/home/jens/Source/shotwell/src/data_imports/DataImportSource.vala"
		if (_tmp40_ != NULL) {
#line 512 "DataImportSource.c"
			PhotoMetadata* _tmp41_;
			gchar* _tmp42_;
#line 63 "/home/jens/Source/shotwell/src/data_imports/DataImportSource.vala"
			_tmp41_ = metadata;
#line 63 "/home/jens/Source/shotwell/src/data_imports/DataImportSource.vala"
			_tmp42_ = photo_metadata_thumbnail_hash (_tmp41_);
#line 63 "/home/jens/Source/shotwell/src/data_imports/DataImportSource.vala"
			_g_free0 (self->priv->preview_md5);
#line 63 "/home/jens/Source/shotwell/src/data_imports/DataImportSource.vala"
			self->priv->preview_md5 = _tmp42_;
#line 523 "DataImportSource.c"
		}
		{
			guint64 _tmp43_ = 0ULL;
			GFile* _tmp44_;
#line 71 "/home/jens/Source/shotwell/src/data_imports/DataImportSource.vala"
			_tmp44_ = photo;
#line 71 "/home/jens/Source/shotwell/src/data_imports/DataImportSource.vala"
			_tmp43_ = query_total_file_size (_tmp44_, NULL, &_inner_error_);
#line 71 "/home/jens/Source/shotwell/src/data_imports/DataImportSource.vala"
			if (G_UNLIKELY (_inner_error_ != NULL)) {
#line 534 "DataImportSource.c"
				goto __catch231_g_error;
			}
#line 71 "/home/jens/Source/shotwell/src/data_imports/DataImportSource.vala"
			self->priv->file_size = _tmp43_;
#line 539 "DataImportSource.c"
		}
		goto __finally231;
		__catch231_g_error:
		{
			GError* e = NULL;
			gchar* _tmp45_;
			gchar* _tmp46_;
			GError* _tmp47_;
			const gchar* _tmp48_;
#line 70 "/home/jens/Source/shotwell/src/data_imports/DataImportSource.vala"
			e = _inner_error_;
#line 70 "/home/jens/Source/shotwell/src/data_imports/DataImportSource.vala"
			_inner_error_ = NULL;
#line 73 "/home/jens/Source/shotwell/src/data_imports/DataImportSource.vala"
			_tmp45_ = spit_data_imports_data_import_source_get_filename (self);
#line 73 "/home/jens/Source/shotwell/src/data_imports/DataImportSource.vala"
			_tmp46_ = _tmp45_;
#line 73 "/home/jens/Source/shotwell/src/data_imports/DataImportSource.vala"
			_tmp47_ = e;
#line 73 "/home/jens/Source/shotwell/src/data_imports/DataImportSource.vala"
			_tmp48_ = _tmp47_->message;
#line 73 "/home/jens/Source/shotwell/src/data_imports/DataImportSource.vala"
			g_warning ("DataImportSource.vala:73: Could not get file size for %s: %s", _tmp46_, _tmp48_);
#line 73 "/home/jens/Source/shotwell/src/data_imports/DataImportSource.vala"
			_g_free0 (_tmp46_);
#line 70 "/home/jens/Source/shotwell/src/data_imports/DataImportSource.vala"
			_g_error_free0 (e);
#line 567 "DataImportSource.c"
		}
		__finally231:
#line 70 "/home/jens/Source/shotwell/src/data_imports/DataImportSource.vala"
		if (G_UNLIKELY (_inner_error_ != NULL)) {
#line 70 "/home/jens/Source/shotwell/src/data_imports/DataImportSource.vala"
			_g_free0 (date_time);
#line 70 "/home/jens/Source/shotwell/src/data_imports/DataImportSource.vala"
			_media_metadata_unref0 (metadata);
#line 70 "/home/jens/Source/shotwell/src/data_imports/DataImportSource.vala"
			_g_object_unref0 (photo);
#line 70 "/home/jens/Source/shotwell/src/data_imports/DataImportSource.vala"
			_g_free0 (filename);
#line 70 "/home/jens/Source/shotwell/src/data_imports/DataImportSource.vala"
			_g_free0 (folder_path);
#line 70 "/home/jens/Source/shotwell/src/data_imports/DataImportSource.vala"
			g_critical ("file %s: line %d: uncaught error: %s (%s, %d)", __FILE__, __LINE__, _inner_error_->message, g_quark_to_string (_inner_error_->domain), _inner_error_->code);
#line 70 "/home/jens/Source/shotwell/src/data_imports/DataImportSource.vala"
			g_clear_error (&_inner_error_);
#line 70 "/home/jens/Source/shotwell/src/data_imports/DataImportSource.vala"
			return NULL;
#line 588 "DataImportSource.c"
		}
		{
			time_t _tmp49_ = 0;
			GFile* _tmp50_;
#line 76 "/home/jens/Source/shotwell/src/data_imports/DataImportSource.vala"
			_tmp50_ = photo;
#line 76 "/home/jens/Source/shotwell/src/data_imports/DataImportSource.vala"
			_tmp49_ = query_file_modified (_tmp50_, &_inner_error_);
#line 76 "/home/jens/Source/shotwell/src/data_imports/DataImportSource.vala"
			if (G_UNLIKELY (_inner_error_ != NULL)) {
#line 599 "DataImportSource.c"
				goto __catch232_g_error;
			}
#line 76 "/home/jens/Source/shotwell/src/data_imports/DataImportSource.vala"
			self->priv->modification_time = _tmp49_;
#line 604 "DataImportSource.c"
		}
		goto __finally232;
		__catch232_g_error:
		{
			GError* e = NULL;
			gchar* _tmp51_;
			gchar* _tmp52_;
			GError* _tmp53_;
			const gchar* _tmp54_;
#line 75 "/home/jens/Source/shotwell/src/data_imports/DataImportSource.vala"
			e = _inner_error_;
#line 75 "/home/jens/Source/shotwell/src/data_imports/DataImportSource.vala"
			_inner_error_ = NULL;
#line 78 "/home/jens/Source/shotwell/src/data_imports/DataImportSource.vala"
			_tmp51_ = spit_data_imports_data_import_source_get_filename (self);
#line 78 "/home/jens/Source/shotwell/src/data_imports/DataImportSource.vala"
			_tmp52_ = _tmp51_;
#line 78 "/home/jens/Source/shotwell/src/data_imports/DataImportSource.vala"
			_tmp53_ = e;
#line 78 "/home/jens/Source/shotwell/src/data_imports/DataImportSource.vala"
			_tmp54_ = _tmp53_->message;
#line 78 "/home/jens/Source/shotwell/src/data_imports/DataImportSource.vala"
			g_warning ("DataImportSource.vala:78: Could not get modification time for %s: %s", _tmp52_, _tmp54_);
#line 78 "/home/jens/Source/shotwell/src/data_imports/DataImportSource.vala"
			_g_free0 (_tmp52_);
#line 75 "/home/jens/Source/shotwell/src/data_imports/DataImportSource.vala"
			_g_error_free0 (e);
#line 632 "DataImportSource.c"
		}
		__finally232:
#line 75 "/home/jens/Source/shotwell/src/data_imports/DataImportSource.vala"
		if (G_UNLIKELY (_inner_error_ != NULL)) {
#line 75 "/home/jens/Source/shotwell/src/data_imports/DataImportSource.vala"
			_g_free0 (date_time);
#line 75 "/home/jens/Source/shotwell/src/data_imports/DataImportSource.vala"
			_media_metadata_unref0 (metadata);
#line 75 "/home/jens/Source/shotwell/src/data_imports/DataImportSource.vala"
			_g_object_unref0 (photo);
#line 75 "/home/jens/Source/shotwell/src/data_imports/DataImportSource.vala"
			_g_free0 (filename);
#line 75 "/home/jens/Source/shotwell/src/data_imports/DataImportSource.vala"
			_g_free0 (folder_path);
#line 75 "/home/jens/Source/shotwell/src/data_imports/DataImportSource.vala"
			g_critical ("file %s: line %d: uncaught error: %s (%s, %d)", __FILE__, __LINE__, _inner_error_->message, g_quark_to_string (_inner_error_->domain), _inner_error_->code);
#line 75 "/home/jens/Source/shotwell/src/data_imports/DataImportSource.vala"
			g_clear_error (&_inner_error_);
#line 75 "/home/jens/Source/shotwell/src/data_imports/DataImportSource.vala"
			return NULL;
#line 653 "DataImportSource.c"
		}
#line 43 "/home/jens/Source/shotwell/src/data_imports/DataImportSource.vala"
		_g_free0 (date_time);
#line 43 "/home/jens/Source/shotwell/src/data_imports/DataImportSource.vala"
		_media_metadata_unref0 (metadata);
#line 659 "DataImportSource.c"
	} else {
		GFile* _tmp55_;
		gchar* _tmp56_;
		gchar* _tmp57_;
		gchar* _tmp58_;
		gchar* _tmp59_;
#line 81 "/home/jens/Source/shotwell/src/data_imports/DataImportSource.vala"
		_tmp55_ = photo;
#line 81 "/home/jens/Source/shotwell/src/data_imports/DataImportSource.vala"
		_tmp56_ = g_file_get_path (_tmp55_);
#line 81 "/home/jens/Source/shotwell/src/data_imports/DataImportSource.vala"
		_tmp57_ = _tmp56_;
#line 81 "/home/jens/Source/shotwell/src/data_imports/DataImportSource.vala"
		_tmp58_ = g_strdup_printf ("Photo file %s not found", _tmp57_);
#line 81 "/home/jens/Source/shotwell/src/data_imports/DataImportSource.vala"
		_tmp59_ = _tmp58_;
#line 81 "/home/jens/Source/shotwell/src/data_imports/DataImportSource.vala"
		g_debug ("DataImportSource.vala:81: %s", _tmp59_);
#line 81 "/home/jens/Source/shotwell/src/data_imports/DataImportSource.vala"
		_g_free0 (_tmp59_);
#line 81 "/home/jens/Source/shotwell/src/data_imports/DataImportSource.vala"
		_g_free0 (_tmp57_);
#line 682 "DataImportSource.c"
	}
#line 26 "/home/jens/Source/shotwell/src/data_imports/DataImportSource.vala"
	_g_object_unref0 (photo);
#line 26 "/home/jens/Source/shotwell/src/data_imports/DataImportSource.vala"
	_g_free0 (filename);
#line 26 "/home/jens/Source/shotwell/src/data_imports/DataImportSource.vala"
	_g_free0 (folder_path);
#line 26 "/home/jens/Source/shotwell/src/data_imports/DataImportSource.vala"
	return self;
#line 692 "DataImportSource.c"
}


SpitDataImportsDataImportSource*
spit_data_imports_data_import_source_new (SpitDataImportsImportableMediaItem* db_photo)
{
#line 26 "/home/jens/Source/shotwell/src/data_imports/DataImportSource.vala"
	return spit_data_imports_data_import_source_construct (SPIT_DATA_IMPORTS_TYPE_DATA_IMPORT_SOURCE, db_photo);
#line 701 "DataImportSource.c"
}


gchar*
spit_data_imports_data_import_source_get_filename (SpitDataImportsDataImportSource* self)
{
	gchar* result = NULL;
	SpitDataImportsImportableMediaItem* _tmp0_;
	gchar* _tmp1_;
#line 85 "/home/jens/Source/shotwell/src/data_imports/DataImportSource.vala"
	g_return_val_if_fail (SPIT_DATA_IMPORTS_IS_DATA_IMPORT_SOURCE (self), NULL);
#line 86 "/home/jens/Source/shotwell/src/data_imports/DataImportSource.vala"
	_tmp0_ = self->priv->db_photo;
#line 86 "/home/jens/Source/shotwell/src/data_imports/DataImportSource.vala"
	_tmp1_ = spit_data_imports_importable_media_item_get_filename (_tmp0_);
#line 86 "/home/jens/Source/shotwell/src/data_imports/DataImportSource.vala"
	result = _tmp1_;
#line 86 "/home/jens/Source/shotwell/src/data_imports/DataImportSource.vala"
	return result;
#line 721 "DataImportSource.c"
}


gchar*
spit_data_imports_data_import_source_get_fulldir (SpitDataImportsDataImportSource* self)
{
	gchar* result = NULL;
	SpitDataImportsImportableMediaItem* _tmp0_;
	gchar* _tmp1_;
#line 89 "/home/jens/Source/shotwell/src/data_imports/DataImportSource.vala"
	g_return_val_if_fail (SPIT_DATA_IMPORTS_IS_DATA_IMPORT_SOURCE (self), NULL);
#line 90 "/home/jens/Source/shotwell/src/data_imports/DataImportSource.vala"
	_tmp0_ = self->priv->db_photo;
#line 90 "/home/jens/Source/shotwell/src/data_imports/DataImportSource.vala"
	_tmp1_ = spit_data_imports_importable_media_item_get_folder_path (_tmp0_);
#line 90 "/home/jens/Source/shotwell/src/data_imports/DataImportSource.vala"
	result = _tmp1_;
#line 90 "/home/jens/Source/shotwell/src/data_imports/DataImportSource.vala"
	return result;
#line 741 "DataImportSource.c"
}


GFile*
spit_data_imports_data_import_source_get_file (SpitDataImportsDataImportSource* self)
{
	GFile* result = NULL;
	gchar* _tmp0_;
	gchar* _tmp1_;
	GFile* _tmp2_;
	GFile* _tmp3_;
	gchar* _tmp4_;
	gchar* _tmp5_;
	GFile* _tmp6_;
	GFile* _tmp7_;
#line 93 "/home/jens/Source/shotwell/src/data_imports/DataImportSource.vala"
	g_return_val_if_fail (SPIT_DATA_IMPORTS_IS_DATA_IMPORT_SOURCE (self), NULL);
#line 94 "/home/jens/Source/shotwell/src/data_imports/DataImportSource.vala"
	_tmp0_ = spit_data_imports_data_import_source_get_fulldir (self);
#line 94 "/home/jens/Source/shotwell/src/data_imports/DataImportSource.vala"
	_tmp1_ = _tmp0_;
#line 94 "/home/jens/Source/shotwell/src/data_imports/DataImportSource.vala"
	_tmp2_ = g_file_new_for_path (_tmp1_);
#line 94 "/home/jens/Source/shotwell/src/data_imports/DataImportSource.vala"
	_tmp3_ = _tmp2_;
#line 94 "/home/jens/Source/shotwell/src/data_imports/DataImportSource.vala"
	_tmp4_ = spit_data_imports_data_import_source_get_filename (self);
#line 94 "/home/jens/Source/shotwell/src/data_imports/DataImportSource.vala"
	_tmp5_ = _tmp4_;
#line 94 "/home/jens/Source/shotwell/src/data_imports/DataImportSource.vala"
	_tmp6_ = g_file_get_child (_tmp3_, _tmp5_);
#line 94 "/home/jens/Source/shotwell/src/data_imports/DataImportSource.vala"
	_tmp7_ = _tmp6_;
#line 94 "/home/jens/Source/shotwell/src/data_imports/DataImportSource.vala"
	_g_free0 (_tmp5_);
#line 94 "/home/jens/Source/shotwell/src/data_imports/DataImportSource.vala"
	_g_object_unref0 (_tmp3_);
#line 94 "/home/jens/Source/shotwell/src/data_imports/DataImportSource.vala"
	_g_free0 (_tmp1_);
#line 94 "/home/jens/Source/shotwell/src/data_imports/DataImportSource.vala"
	result = _tmp7_;
#line 94 "/home/jens/Source/shotwell/src/data_imports/DataImportSource.vala"
	return result;
#line 785 "DataImportSource.c"
}


gchar*
spit_data_imports_data_import_source_get_name (SpitDataImportsDataImportSource* self)
{
	gchar* result = NULL;
	gchar* _tmp0_ = NULL;
	const gchar* _tmp1_;
#line 97 "/home/jens/Source/shotwell/src/data_imports/DataImportSource.vala"
	g_return_val_if_fail (SPIT_DATA_IMPORTS_IS_DATA_IMPORT_SOURCE (self), NULL);
#line 98 "/home/jens/Source/shotwell/src/data_imports/DataImportSource.vala"
	_tmp1_ = self->priv->title;
#line 98 "/home/jens/Source/shotwell/src/data_imports/DataImportSource.vala"
	if (!is_string_empty (_tmp1_)) {
#line 801 "DataImportSource.c"
		const gchar* _tmp2_;
		gchar* _tmp3_;
#line 98 "/home/jens/Source/shotwell/src/data_imports/DataImportSource.vala"
		_tmp2_ = self->priv->title;
#line 98 "/home/jens/Source/shotwell/src/data_imports/DataImportSource.vala"
		_tmp3_ = g_strdup (_tmp2_);
#line 98 "/home/jens/Source/shotwell/src/data_imports/DataImportSource.vala"
		_g_free0 (_tmp0_);
#line 98 "/home/jens/Source/shotwell/src/data_imports/DataImportSource.vala"
		_tmp0_ = _tmp3_;
#line 812 "DataImportSource.c"
	} else {
		gchar* _tmp4_;
#line 98 "/home/jens/Source/shotwell/src/data_imports/DataImportSource.vala"
		_tmp4_ = spit_data_imports_data_import_source_get_filename (self);
#line 98 "/home/jens/Source/shotwell/src/data_imports/DataImportSource.vala"
		_g_free0 (_tmp0_);
#line 98 "/home/jens/Source/shotwell/src/data_imports/DataImportSource.vala"
		_tmp0_ = _tmp4_;
#line 821 "DataImportSource.c"
	}
#line 98 "/home/jens/Source/shotwell/src/data_imports/DataImportSource.vala"
	result = _tmp0_;
#line 98 "/home/jens/Source/shotwell/src/data_imports/DataImportSource.vala"
	return result;
#line 827 "DataImportSource.c"
}


gchar*
spit_data_imports_data_import_source_get_title (SpitDataImportsDataImportSource* self)
{
	gchar* result = NULL;
	const gchar* _tmp0_;
	gchar* _tmp1_;
#line 101 "/home/jens/Source/shotwell/src/data_imports/DataImportSource.vala"
	g_return_val_if_fail (SPIT_DATA_IMPORTS_IS_DATA_IMPORT_SOURCE (self), NULL);
#line 102 "/home/jens/Source/shotwell/src/data_imports/DataImportSource.vala"
	_tmp0_ = self->priv->title;
#line 102 "/home/jens/Source/shotwell/src/data_imports/DataImportSource.vala"
	_tmp1_ = g_strdup (_tmp0_);
#line 102 "/home/jens/Source/shotwell/src/data_imports/DataImportSource.vala"
	result = _tmp1_;
#line 102 "/home/jens/Source/shotwell/src/data_imports/DataImportSource.vala"
	return result;
#line 847 "DataImportSource.c"
}


PhotoFileFormat
spit_data_imports_data_import_source_get_file_format (SpitDataImportsDataImportSource* self)
{
	PhotoFileFormat result = 0;
	gchar* _tmp0_;
	gchar* _tmp1_;
	PhotoFileFormat _tmp2_;
#line 105 "/home/jens/Source/shotwell/src/data_imports/DataImportSource.vala"
	g_return_val_if_fail (SPIT_DATA_IMPORTS_IS_DATA_IMPORT_SOURCE (self), 0);
#line 106 "/home/jens/Source/shotwell/src/data_imports/DataImportSource.vala"
	_tmp0_ = spit_data_imports_data_import_source_get_filename (self);
#line 106 "/home/jens/Source/shotwell/src/data_imports/DataImportSource.vala"
	_tmp1_ = _tmp0_;
#line 106 "/home/jens/Source/shotwell/src/data_imports/DataImportSource.vala"
	_tmp2_ = photo_file_format_get_by_basename_extension (_tmp1_);
#line 106 "/home/jens/Source/shotwell/src/data_imports/DataImportSource.vala"
	_g_free0 (_tmp1_);
#line 106 "/home/jens/Source/shotwell/src/data_imports/DataImportSource.vala"
	result = _tmp2_;
#line 106 "/home/jens/Source/shotwell/src/data_imports/DataImportSource.vala"
	return result;
#line 872 "DataImportSource.c"
}


gchar*
spit_data_imports_data_import_source_to_string (SpitDataImportsDataImportSource* self)
{
	gchar* result = NULL;
	gchar* _tmp0_;
#line 109 "/home/jens/Source/shotwell/src/data_imports/DataImportSource.vala"
	g_return_val_if_fail (SPIT_DATA_IMPORTS_IS_DATA_IMPORT_SOURCE (self), NULL);
#line 110 "/home/jens/Source/shotwell/src/data_imports/DataImportSource.vala"
	_tmp0_ = spit_data_imports_data_import_source_get_name (self);
#line 110 "/home/jens/Source/shotwell/src/data_imports/DataImportSource.vala"
	result = _tmp0_;
#line 110 "/home/jens/Source/shotwell/src/data_imports/DataImportSource.vala"
	return result;
#line 889 "DataImportSource.c"
}


time_t
spit_data_imports_data_import_source_get_exposure_time (SpitDataImportsDataImportSource* self)
{
	time_t result = 0;
	time_t _tmp0_ = 0;
	MetadataDateTime* _tmp1_;
#line 113 "/home/jens/Source/shotwell/src/data_imports/DataImportSource.vala"
	g_return_val_if_fail (SPIT_DATA_IMPORTS_IS_DATA_IMPORT_SOURCE (self), 0);
#line 114 "/home/jens/Source/shotwell/src/data_imports/DataImportSource.vala"
	_tmp1_ = self->priv->exposure_time;
#line 114 "/home/jens/Source/shotwell/src/data_imports/DataImportSource.vala"
	if (_tmp1_ != NULL) {
#line 905 "DataImportSource.c"
		MetadataDateTime* _tmp2_;
#line 114 "/home/jens/Source/shotwell/src/data_imports/DataImportSource.vala"
		_tmp2_ = self->priv->exposure_time;
#line 114 "/home/jens/Source/shotwell/src/data_imports/DataImportSource.vala"
		_tmp0_ = metadata_date_time_get_timestamp (_tmp2_);
#line 911 "DataImportSource.c"
	} else {
		time_t _tmp3_;
#line 114 "/home/jens/Source/shotwell/src/data_imports/DataImportSource.vala"
		_tmp3_ = self->priv->modification_time;
#line 114 "/home/jens/Source/shotwell/src/data_imports/DataImportSource.vala"
		_tmp0_ = _tmp3_;
#line 918 "DataImportSource.c"
	}
#line 114 "/home/jens/Source/shotwell/src/data_imports/DataImportSource.vala"
	result = _tmp0_;
#line 114 "/home/jens/Source/shotwell/src/data_imports/DataImportSource.vala"
	return result;
#line 924 "DataImportSource.c"
}


guint64
spit_data_imports_data_import_source_get_filesize (SpitDataImportsDataImportSource* self)
{
	guint64 result = 0ULL;
	guint64 _tmp0_;
#line 117 "/home/jens/Source/shotwell/src/data_imports/DataImportSource.vala"
	g_return_val_if_fail (SPIT_DATA_IMPORTS_IS_DATA_IMPORT_SOURCE (self), 0ULL);
#line 118 "/home/jens/Source/shotwell/src/data_imports/DataImportSource.vala"
	_tmp0_ = self->priv->file_size;
#line 118 "/home/jens/Source/shotwell/src/data_imports/DataImportSource.vala"
	result = _tmp0_;
#line 118 "/home/jens/Source/shotwell/src/data_imports/DataImportSource.vala"
	return result;
#line 941 "DataImportSource.c"
}


SpitDataImportsImportableMediaItem*
spit_data_imports_data_import_source_get_photo (SpitDataImportsDataImportSource* self)
{
	SpitDataImportsImportableMediaItem* result = NULL;
	SpitDataImportsImportableMediaItem* _tmp0_;
	SpitDataImportsImportableMediaItem* _tmp1_;
#line 121 "/home/jens/Source/shotwell/src/data_imports/DataImportSource.vala"
	g_return_val_if_fail (SPIT_DATA_IMPORTS_IS_DATA_IMPORT_SOURCE (self), NULL);
#line 122 "/home/jens/Source/shotwell/src/data_imports/DataImportSource.vala"
	_tmp0_ = self->priv->db_photo;
#line 122 "/home/jens/Source/shotwell/src/data_imports/DataImportSource.vala"
	_tmp1_ = _g_object_ref0 (_tmp0_);
#line 122 "/home/jens/Source/shotwell/src/data_imports/DataImportSource.vala"
	result = _tmp1_;
#line 122 "/home/jens/Source/shotwell/src/data_imports/DataImportSource.vala"
	return result;
#line 961 "DataImportSource.c"
}


gboolean
spit_data_imports_data_import_source_is_already_imported (SpitDataImportsDataImportSource* self)
{
	gboolean result = FALSE;
	gboolean _tmp0_ = FALSE;
	const gchar* _tmp1_;
#line 125 "/home/jens/Source/shotwell/src/data_imports/DataImportSource.vala"
	g_return_val_if_fail (SPIT_DATA_IMPORTS_IS_DATA_IMPORT_SOURCE (self), FALSE);
#line 127 "/home/jens/Source/shotwell/src/data_imports/DataImportSource.vala"
	_tmp1_ = self->priv->preview_md5;
#line 127 "/home/jens/Source/shotwell/src/data_imports/DataImportSource.vala"
	if (_tmp1_ != NULL) {
#line 977 "DataImportSource.c"
		const gchar* _tmp2_;
#line 128 "/home/jens/Source/shotwell/src/data_imports/DataImportSource.vala"
		_tmp2_ = self->priv->preview_md5;
#line 128 "/home/jens/Source/shotwell/src/data_imports/DataImportSource.vala"
		_tmp0_ = library_photo_has_nontrash_duplicate (NULL, _tmp2_, NULL, spit_data_imports_data_import_source_get_file_format (self));
#line 983 "DataImportSource.c"
	} else {
#line 129 "/home/jens/Source/shotwell/src/data_imports/DataImportSource.vala"
		_tmp0_ = FALSE;
#line 987 "DataImportSource.c"
	}
#line 127 "/home/jens/Source/shotwell/src/data_imports/DataImportSource.vala"
	result = _tmp0_;
#line 127 "/home/jens/Source/shotwell/src/data_imports/DataImportSource.vala"
	return result;
#line 993 "DataImportSource.c"
}


gboolean
spit_data_imports_data_import_source_was_backing_file_found (SpitDataImportsDataImportSource* self)
{
	gboolean result = FALSE;
	gboolean _tmp0_;
#line 132 "/home/jens/Source/shotwell/src/data_imports/DataImportSource.vala"
	g_return_val_if_fail (SPIT_DATA_IMPORTS_IS_DATA_IMPORT_SOURCE (self), FALSE);
#line 133 "/home/jens/Source/shotwell/src/data_imports/DataImportSource.vala"
	_tmp0_ = self->priv->backing_file_found;
#line 133 "/home/jens/Source/shotwell/src/data_imports/DataImportSource.vala"
	result = _tmp0_;
#line 133 "/home/jens/Source/shotwell/src/data_imports/DataImportSource.vala"
	return result;
#line 1010 "DataImportSource.c"
}


static void
spit_data_imports_value_data_import_source_init (GValue* value)
{
#line 17 "/home/jens/Source/shotwell/src/data_imports/DataImportSource.vala"
	value->data[0].v_pointer = NULL;
#line 1019 "DataImportSource.c"
}


static void
spit_data_imports_value_data_import_source_free_value (GValue* value)
{
#line 17 "/home/jens/Source/shotwell/src/data_imports/DataImportSource.vala"
	if (value->data[0].v_pointer) {
#line 17 "/home/jens/Source/shotwell/src/data_imports/DataImportSource.vala"
		spit_data_imports_data_import_source_unref (value->data[0].v_pointer);
#line 1030 "DataImportSource.c"
	}
}


static void
spit_data_imports_value_data_import_source_copy_value (const GValue* src_value,
                                                       GValue* dest_value)
{
#line 17 "/home/jens/Source/shotwell/src/data_imports/DataImportSource.vala"
	if (src_value->data[0].v_pointer) {
#line 17 "/home/jens/Source/shotwell/src/data_imports/DataImportSource.vala"
		dest_value->data[0].v_pointer = spit_data_imports_data_import_source_ref (src_value->data[0].v_pointer);
#line 1043 "DataImportSource.c"
	} else {
#line 17 "/home/jens/Source/shotwell/src/data_imports/DataImportSource.vala"
		dest_value->data[0].v_pointer = NULL;
#line 1047 "DataImportSource.c"
	}
}


static gpointer
spit_data_imports_value_data_import_source_peek_pointer (const GValue* value)
{
#line 17 "/home/jens/Source/shotwell/src/data_imports/DataImportSource.vala"
	return value->data[0].v_pointer;
#line 1057 "DataImportSource.c"
}


static gchar*
spit_data_imports_value_data_import_source_collect_value (GValue* value,
                                                          guint n_collect_values,
                                                          GTypeCValue* collect_values,
                                                          guint collect_flags)
{
#line 17 "/home/jens/Source/shotwell/src/data_imports/DataImportSource.vala"
	if (collect_values[0].v_pointer) {
#line 1069 "DataImportSource.c"
		SpitDataImportsDataImportSource * object;
		object = collect_values[0].v_pointer;
#line 17 "/home/jens/Source/shotwell/src/data_imports/DataImportSource.vala"
		if (object->parent_instance.g_class == NULL) {
#line 17 "/home/jens/Source/shotwell/src/data_imports/DataImportSource.vala"
			return g_strconcat ("invalid unclassed object pointer for value type `", G_VALUE_TYPE_NAME (value), "'", NULL);
#line 1076 "DataImportSource.c"
		} else if (!g_value_type_compatible (G_TYPE_FROM_INSTANCE (object), G_VALUE_TYPE (value))) {
#line 17 "/home/jens/Source/shotwell/src/data_imports/DataImportSource.vala"
			return g_strconcat ("invalid object type `", g_type_name (G_TYPE_FROM_INSTANCE (object)), "' for value type `", G_VALUE_TYPE_NAME (value), "'", NULL);
#line 1080 "DataImportSource.c"
		}
#line 17 "/home/jens/Source/shotwell/src/data_imports/DataImportSource.vala"
		value->data[0].v_pointer = spit_data_imports_data_import_source_ref (object);
#line 1084 "DataImportSource.c"
	} else {
#line 17 "/home/jens/Source/shotwell/src/data_imports/DataImportSource.vala"
		value->data[0].v_pointer = NULL;
#line 1088 "DataImportSource.c"
	}
#line 17 "/home/jens/Source/shotwell/src/data_imports/DataImportSource.vala"
	return NULL;
#line 1092 "DataImportSource.c"
}


static gchar*
spit_data_imports_value_data_import_source_lcopy_value (const GValue* value,
                                                        guint n_collect_values,
                                                        GTypeCValue* collect_values,
                                                        guint collect_flags)
{
	SpitDataImportsDataImportSource ** object_p;
	object_p = collect_values[0].v_pointer;
#line 17 "/home/jens/Source/shotwell/src/data_imports/DataImportSource.vala"
	if (!object_p) {
#line 17 "/home/jens/Source/shotwell/src/data_imports/DataImportSource.vala"
		return g_strdup_printf ("value location for `%s' passed as NULL", G_VALUE_TYPE_NAME (value));
#line 1108 "DataImportSource.c"
	}
#line 17 "/home/jens/Source/shotwell/src/data_imports/DataImportSource.vala"
	if (!value->data[0].v_pointer) {
#line 17 "/home/jens/Source/shotwell/src/data_imports/DataImportSource.vala"
		*object_p = NULL;
#line 1114 "DataImportSource.c"
	} else if (collect_flags & G_VALUE_NOCOPY_CONTENTS) {
#line 17 "/home/jens/Source/shotwell/src/data_imports/DataImportSource.vala"
		*object_p = value->data[0].v_pointer;
#line 1118 "DataImportSource.c"
	} else {
#line 17 "/home/jens/Source/shotwell/src/data_imports/DataImportSource.vala"
		*object_p = spit_data_imports_data_import_source_ref (value->data[0].v_pointer);
#line 1122 "DataImportSource.c"
	}
#line 17 "/home/jens/Source/shotwell/src/data_imports/DataImportSource.vala"
	return NULL;
#line 1126 "DataImportSource.c"
}


GParamSpec*
spit_data_imports_param_spec_data_import_source (const gchar* name,
                                                 const gchar* nick,
                                                 const gchar* blurb,
                                                 GType object_type,
                                                 GParamFlags flags)
{
	SpitDataImportsParamSpecDataImportSource* spec;
#line 17 "/home/jens/Source/shotwell/src/data_imports/DataImportSource.vala"
	g_return_val_if_fail (g_type_is_a (object_type, SPIT_DATA_IMPORTS_TYPE_DATA_IMPORT_SOURCE), NULL);
#line 17 "/home/jens/Source/shotwell/src/data_imports/DataImportSource.vala"
	spec = g_param_spec_internal (G_TYPE_PARAM_OBJECT, name, nick, blurb, flags);
#line 17 "/home/jens/Source/shotwell/src/data_imports/DataImportSource.vala"
	G_PARAM_SPEC (spec)->value_type = object_type;
#line 17 "/home/jens/Source/shotwell/src/data_imports/DataImportSource.vala"
	return G_PARAM_SPEC (spec);
#line 1146 "DataImportSource.c"
}


gpointer
spit_data_imports_value_get_data_import_source (const GValue* value)
{
#line 17 "/home/jens/Source/shotwell/src/data_imports/DataImportSource.vala"
	g_return_val_if_fail (G_TYPE_CHECK_VALUE_TYPE (value, SPIT_DATA_IMPORTS_TYPE_DATA_IMPORT_SOURCE), NULL);
#line 17 "/home/jens/Source/shotwell/src/data_imports/DataImportSource.vala"
	return value->data[0].v_pointer;
#line 1157 "DataImportSource.c"
}


void
spit_data_imports_value_set_data_import_source (GValue* value,
                                                gpointer v_object)
{
	SpitDataImportsDataImportSource * old;
#line 17 "/home/jens/Source/shotwell/src/data_imports/DataImportSource.vala"
	g_return_if_fail (G_TYPE_CHECK_VALUE_TYPE (value, SPIT_DATA_IMPORTS_TYPE_DATA_IMPORT_SOURCE));
#line 17 "/home/jens/Source/shotwell/src/data_imports/DataImportSource.vala"
	old = value->data[0].v_pointer;
#line 17 "/home/jens/Source/shotwell/src/data_imports/DataImportSource.vala"
	if (v_object) {
#line 17 "/home/jens/Source/shotwell/src/data_imports/DataImportSource.vala"
		g_return_if_fail (G_TYPE_CHECK_INSTANCE_TYPE (v_object, SPIT_DATA_IMPORTS_TYPE_DATA_IMPORT_SOURCE));
#line 17 "/home/jens/Source/shotwell/src/data_imports/DataImportSource.vala"
		g_return_if_fail (g_value_type_compatible (G_TYPE_FROM_INSTANCE (v_object), G_VALUE_TYPE (value)));
#line 17 "/home/jens/Source/shotwell/src/data_imports/DataImportSource.vala"
		value->data[0].v_pointer = v_object;
#line 17 "/home/jens/Source/shotwell/src/data_imports/DataImportSource.vala"
		spit_data_imports_data_import_source_ref (value->data[0].v_pointer);
#line 1180 "DataImportSource.c"
	} else {
#line 17 "/home/jens/Source/shotwell/src/data_imports/DataImportSource.vala"
		value->data[0].v_pointer = NULL;
#line 1184 "DataImportSource.c"
	}
#line 17 "/home/jens/Source/shotwell/src/data_imports/DataImportSource.vala"
	if (old) {
#line 17 "/home/jens/Source/shotwell/src/data_imports/DataImportSource.vala"
		spit_data_imports_data_import_source_unref (old);
#line 1190 "DataImportSource.c"
	}
}


void
spit_data_imports_value_take_data_import_source (GValue* value,
                                                 gpointer v_object)
{
	SpitDataImportsDataImportSource * old;
#line 17 "/home/jens/Source/shotwell/src/data_imports/DataImportSource.vala"
	g_return_if_fail (G_TYPE_CHECK_VALUE_TYPE (value, SPIT_DATA_IMPORTS_TYPE_DATA_IMPORT_SOURCE));
#line 17 "/home/jens/Source/shotwell/src/data_imports/DataImportSource.vala"
	old = value->data[0].v_pointer;
#line 17 "/home/jens/Source/shotwell/src/data_imports/DataImportSource.vala"
	if (v_object) {
#line 17 "/home/jens/Source/shotwell/src/data_imports/DataImportSource.vala"
		g_return_if_fail (G_TYPE_CHECK_INSTANCE_TYPE (v_object, SPIT_DATA_IMPORTS_TYPE_DATA_IMPORT_SOURCE));
#line 17 "/home/jens/Source/shotwell/src/data_imports/DataImportSource.vala"
		g_return_if_fail (g_value_type_compatible (G_TYPE_FROM_INSTANCE (v_object), G_VALUE_TYPE (value)));
#line 17 "/home/jens/Source/shotwell/src/data_imports/DataImportSource.vala"
		value->data[0].v_pointer = v_object;
#line 1212 "DataImportSource.c"
	} else {
#line 17 "/home/jens/Source/shotwell/src/data_imports/DataImportSource.vala"
		value->data[0].v_pointer = NULL;
#line 1216 "DataImportSource.c"
	}
#line 17 "/home/jens/Source/shotwell/src/data_imports/DataImportSource.vala"
	if (old) {
#line 17 "/home/jens/Source/shotwell/src/data_imports/DataImportSource.vala"
		spit_data_imports_data_import_source_unref (old);
#line 1222 "DataImportSource.c"
	}
}


static void
spit_data_imports_data_import_source_class_init (SpitDataImportsDataImportSourceClass * klass)
{
#line 17 "/home/jens/Source/shotwell/src/data_imports/DataImportSource.vala"
	spit_data_imports_data_import_source_parent_class = g_type_class_peek_parent (klass);
#line 17 "/home/jens/Source/shotwell/src/data_imports/DataImportSource.vala"
	((SpitDataImportsDataImportSourceClass *) klass)->finalize = spit_data_imports_data_import_source_finalize;
#line 17 "/home/jens/Source/shotwell/src/data_imports/DataImportSource.vala"
	g_type_class_add_private (klass, sizeof (SpitDataImportsDataImportSourcePrivate));
#line 1236 "DataImportSource.c"
}


static void
spit_data_imports_data_import_source_instance_init (SpitDataImportsDataImportSource * self)
{
#line 17 "/home/jens/Source/shotwell/src/data_imports/DataImportSource.vala"
	self->priv = SPIT_DATA_IMPORTS_DATA_IMPORT_SOURCE_GET_PRIVATE (self);
#line 20 "/home/jens/Source/shotwell/src/data_imports/DataImportSource.vala"
	self->priv->title = NULL;
#line 21 "/home/jens/Source/shotwell/src/data_imports/DataImportSource.vala"
	self->priv->preview_md5 = NULL;
#line 17 "/home/jens/Source/shotwell/src/data_imports/DataImportSource.vala"
	self->ref_count = 1;
#line 1251 "DataImportSource.c"
}


static void
spit_data_imports_data_import_source_finalize (SpitDataImportsDataImportSource * obj)
{
	SpitDataImportsDataImportSource * self;
#line 17 "/home/jens/Source/shotwell/src/data_imports/DataImportSource.vala"
	self = G_TYPE_CHECK_INSTANCE_CAST (obj, SPIT_DATA_IMPORTS_TYPE_DATA_IMPORT_SOURCE, SpitDataImportsDataImportSource);
#line 17 "/home/jens/Source/shotwell/src/data_imports/DataImportSource.vala"
	g_signal_handlers_destroy (self);
#line 19 "/home/jens/Source/shotwell/src/data_imports/DataImportSource.vala"
	_g_object_unref0 (self->priv->db_photo);
#line 20 "/home/jens/Source/shotwell/src/data_imports/DataImportSource.vala"
	_g_free0 (self->priv->title);
#line 21 "/home/jens/Source/shotwell/src/data_imports/DataImportSource.vala"
	_g_free0 (self->priv->preview_md5);
#line 24 "/home/jens/Source/shotwell/src/data_imports/DataImportSource.vala"
	_metadata_date_time_unref0 (self->priv->exposure_time);
#line 1271 "DataImportSource.c"
}


/**
 * Photo source implementation for alien databases. This class is responsible
 * for extracting meta-data out of a source photo to support the import
 * process.
 *
 * This class does not extend PhotoSource in order to minimise the API to the
 * absolute minimum required to run the import job.
 */
GType
spit_data_imports_data_import_source_get_type (void)
{
	static volatile gsize spit_data_imports_data_import_source_type_id__volatile = 0;
	if (g_once_init_enter (&spit_data_imports_data_import_source_type_id__volatile)) {
		static const GTypeValueTable g_define_type_value_table = { spit_data_imports_value_data_import_source_init, spit_data_imports_value_data_import_source_free_value, spit_data_imports_value_data_import_source_copy_value, spit_data_imports_value_data_import_source_peek_pointer, "p", spit_data_imports_value_data_import_source_collect_value, "p", spit_data_imports_value_data_import_source_lcopy_value };
		static const GTypeInfo g_define_type_info = { sizeof (SpitDataImportsDataImportSourceClass), (GBaseInitFunc) NULL, (GBaseFinalizeFunc) NULL, (GClassInitFunc) spit_data_imports_data_import_source_class_init, (GClassFinalizeFunc) NULL, NULL, sizeof (SpitDataImportsDataImportSource), 0, (GInstanceInitFunc) spit_data_imports_data_import_source_instance_init, &g_define_type_value_table };
		static const GTypeFundamentalInfo g_define_type_fundamental_info = { (G_TYPE_FLAG_CLASSED | G_TYPE_FLAG_INSTANTIATABLE | G_TYPE_FLAG_DERIVABLE | G_TYPE_FLAG_DEEP_DERIVABLE) };
		GType spit_data_imports_data_import_source_type_id;
		spit_data_imports_data_import_source_type_id = g_type_register_fundamental (g_type_fundamental_next (), "SpitDataImportsDataImportSource", &g_define_type_info, &g_define_type_fundamental_info, 0);
		g_once_init_leave (&spit_data_imports_data_import_source_type_id__volatile, spit_data_imports_data_import_source_type_id);
	}
	return spit_data_imports_data_import_source_type_id__volatile;
}


gpointer
spit_data_imports_data_import_source_ref (gpointer instance)
{
	SpitDataImportsDataImportSource * self;
	self = instance;
#line 17 "/home/jens/Source/shotwell/src/data_imports/DataImportSource.vala"
	g_atomic_int_inc (&self->ref_count);
#line 17 "/home/jens/Source/shotwell/src/data_imports/DataImportSource.vala"
	return instance;
#line 1308 "DataImportSource.c"
}


void
spit_data_imports_data_import_source_unref (gpointer instance)
{
	SpitDataImportsDataImportSource * self;
	self = instance;
#line 17 "/home/jens/Source/shotwell/src/data_imports/DataImportSource.vala"
	if (g_atomic_int_dec_and_test (&self->ref_count)) {
#line 17 "/home/jens/Source/shotwell/src/data_imports/DataImportSource.vala"
		SPIT_DATA_IMPORTS_DATA_IMPORT_SOURCE_GET_CLASS (self)->finalize (self);
#line 17 "/home/jens/Source/shotwell/src/data_imports/DataImportSource.vala"
		g_type_free_instance ((GTypeInstance *) self);
#line 1323 "DataImportSource.c"
	}
}



