diff options
Diffstat (limited to 'src/photos/GdkSupport.c')
-rw-r--r-- | src/photos/GdkSupport.c | 1402 |
1 files changed, 1402 insertions, 0 deletions
diff --git a/src/photos/GdkSupport.c b/src/photos/GdkSupport.c new file mode 100644 index 0000000..f016592 --- /dev/null +++ b/src/photos/GdkSupport.c @@ -0,0 +1,1402 @@ +/* GdkSupport.c generated by valac 0.32.1, the Vala compiler + * generated from GdkSupport.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 <gdk-pixbuf/gdk-pixbuf.h> +#include <stdlib.h> +#include <string.h> +#include <gio/gio.h> + + +#define TYPE_PHOTO_FILE_ADAPTER (photo_file_adapter_get_type ()) +#define PHOTO_FILE_ADAPTER(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_PHOTO_FILE_ADAPTER, PhotoFileAdapter)) +#define PHOTO_FILE_ADAPTER_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_PHOTO_FILE_ADAPTER, PhotoFileAdapterClass)) +#define IS_PHOTO_FILE_ADAPTER(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_PHOTO_FILE_ADAPTER)) +#define IS_PHOTO_FILE_ADAPTER_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_PHOTO_FILE_ADAPTER)) +#define PHOTO_FILE_ADAPTER_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_PHOTO_FILE_ADAPTER, PhotoFileAdapterClass)) + +typedef struct _PhotoFileAdapter PhotoFileAdapter; +typedef struct _PhotoFileAdapterClass PhotoFileAdapterClass; +typedef struct _PhotoFileAdapterPrivate PhotoFileAdapterPrivate; + +#define TYPE_PHOTO_FILE_READER (photo_file_reader_get_type ()) +#define PHOTO_FILE_READER(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_PHOTO_FILE_READER, PhotoFileReader)) +#define PHOTO_FILE_READER_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_PHOTO_FILE_READER, PhotoFileReaderClass)) +#define IS_PHOTO_FILE_READER(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_PHOTO_FILE_READER)) +#define IS_PHOTO_FILE_READER_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_PHOTO_FILE_READER)) +#define PHOTO_FILE_READER_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_PHOTO_FILE_READER, PhotoFileReaderClass)) + +typedef struct _PhotoFileReader PhotoFileReader; +typedef struct _PhotoFileReaderClass PhotoFileReaderClass; +typedef struct _PhotoFileReaderPrivate PhotoFileReaderPrivate; + +#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 TYPE_DIMENSIONS (dimensions_get_type ()) +typedef struct _Dimensions Dimensions; + +#define TYPE_GDK_READER (gdk_reader_get_type ()) +#define GDK_READER(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_GDK_READER, GdkReader)) +#define GDK_READER_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_GDK_READER, GdkReaderClass)) +#define IS_GDK_READER(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_GDK_READER)) +#define IS_GDK_READER_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_GDK_READER)) +#define GDK_READER_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_GDK_READER, GdkReaderClass)) + +typedef struct _GdkReader GdkReader; +typedef struct _GdkReaderClass GdkReaderClass; +typedef struct _GdkReaderPrivate GdkReaderPrivate; + +#define TYPE_PHOTO_FILE_FORMAT (photo_file_format_get_type ()) +#define _g_object_unref0(var) ((var == NULL) ? NULL : (var = (g_object_unref (var), NULL))) +#define _media_metadata_unref0(var) ((var == NULL) ? NULL : (var = (media_metadata_unref (var), NULL))) +#define _g_free0(var) (var = (g_free (var), NULL)) + +#define TYPE_PHOTO_FILE_SNIFFER (photo_file_sniffer_get_type ()) +#define PHOTO_FILE_SNIFFER(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_PHOTO_FILE_SNIFFER, PhotoFileSniffer)) +#define PHOTO_FILE_SNIFFER_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_PHOTO_FILE_SNIFFER, PhotoFileSnifferClass)) +#define IS_PHOTO_FILE_SNIFFER(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_PHOTO_FILE_SNIFFER)) +#define IS_PHOTO_FILE_SNIFFER_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_PHOTO_FILE_SNIFFER)) +#define PHOTO_FILE_SNIFFER_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_PHOTO_FILE_SNIFFER, PhotoFileSnifferClass)) + +typedef struct _PhotoFileSniffer PhotoFileSniffer; +typedef struct _PhotoFileSnifferClass PhotoFileSnifferClass; +typedef struct _PhotoFileSnifferPrivate PhotoFileSnifferPrivate; + +#define TYPE_DETECTED_PHOTO_INFORMATION (detected_photo_information_get_type ()) +#define DETECTED_PHOTO_INFORMATION(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_DETECTED_PHOTO_INFORMATION, DetectedPhotoInformation)) +#define DETECTED_PHOTO_INFORMATION_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_DETECTED_PHOTO_INFORMATION, DetectedPhotoInformationClass)) +#define IS_DETECTED_PHOTO_INFORMATION(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_DETECTED_PHOTO_INFORMATION)) +#define IS_DETECTED_PHOTO_INFORMATION_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_DETECTED_PHOTO_INFORMATION)) +#define DETECTED_PHOTO_INFORMATION_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_DETECTED_PHOTO_INFORMATION, DetectedPhotoInformationClass)) + +typedef struct _DetectedPhotoInformation DetectedPhotoInformation; +typedef struct _DetectedPhotoInformationClass DetectedPhotoInformationClass; + +#define PHOTO_FILE_SNIFFER_TYPE_OPTIONS (photo_file_sniffer_options_get_type ()) + +#define TYPE_GDK_SNIFFER (gdk_sniffer_get_type ()) +#define GDK_SNIFFER(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_GDK_SNIFFER, GdkSniffer)) +#define GDK_SNIFFER_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_GDK_SNIFFER, GdkSnifferClass)) +#define IS_GDK_SNIFFER(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_GDK_SNIFFER)) +#define IS_GDK_SNIFFER_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_GDK_SNIFFER)) +#define GDK_SNIFFER_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_GDK_SNIFFER, GdkSnifferClass)) + +typedef struct _GdkSniffer GdkSniffer; +typedef struct _GdkSnifferClass GdkSnifferClass; +typedef struct _GdkSnifferPrivate GdkSnifferPrivate; +#define _detected_photo_information_unref0(var) ((var == NULL) ? NULL : (var = (detected_photo_information_unref (var), NULL))) +#define _g_checksum_free0(var) ((var == NULL) ? NULL : (var = (g_checksum_free (var), NULL))) +typedef struct _DetectedPhotoInformationPrivate DetectedPhotoInformationPrivate; +#define _g_error_free0(var) ((var == NULL) ? NULL : (var = (g_error_free (var), NULL))) + +struct _PhotoFileAdapter { + GTypeInstance parent_instance; + volatile int ref_count; + PhotoFileAdapterPrivate * priv; +}; + +struct _PhotoFileAdapterClass { + GTypeClass parent_class; + void (*finalize) (PhotoFileAdapter *self); +}; + +struct _Dimensions { + gint width; + gint height; +}; + +struct _PhotoFileReader { + PhotoFileAdapter parent_instance; + PhotoFileReaderPrivate * priv; +}; + +struct _PhotoFileReaderClass { + PhotoFileAdapterClass parent_class; + PhotoMetadata* (*read_metadata) (PhotoFileReader* self, GError** error); + GdkPixbuf* (*unscaled_read) (PhotoFileReader* self, GError** error); + GdkPixbuf* (*scaled_read) (PhotoFileReader* self, Dimensions* full, Dimensions* scaled, GError** error); +}; + +struct _GdkReader { + PhotoFileReader parent_instance; + GdkReaderPrivate * priv; +}; + +struct _GdkReaderClass { + PhotoFileReaderClass parent_class; +}; + +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; + +typedef enum { + PHOTO_FILE_SNIFFER_OPTIONS_GET_ALL = 0x00000000, + PHOTO_FILE_SNIFFER_OPTIONS_NO_MD5 = 0x00000001 +} PhotoFileSnifferOptions; + +struct _PhotoFileSniffer { + GTypeInstance parent_instance; + volatile int ref_count; + PhotoFileSnifferPrivate * priv; + GFile* file; + PhotoFileSnifferOptions options; + gboolean calc_md5; +}; + +struct _PhotoFileSnifferClass { + GTypeClass parent_class; + void (*finalize) (PhotoFileSniffer *self); + DetectedPhotoInformation* (*sniff) (PhotoFileSniffer* self, gboolean* is_corrupted, GError** error); +}; + +struct _GdkSniffer { + PhotoFileSniffer parent_instance; + GdkSnifferPrivate * priv; +}; + +struct _GdkSnifferClass { + PhotoFileSnifferClass parent_class; +}; + +struct _GdkSnifferPrivate { + DetectedPhotoInformation* detected; + gboolean size_ready; + gboolean area_prepared; +}; + +struct _DetectedPhotoInformation { + GTypeInstance parent_instance; + volatile int ref_count; + DetectedPhotoInformationPrivate * priv; + PhotoFileFormat file_format; + PhotoMetadata* metadata; + gchar* md5; + gchar* exif_md5; + gchar* thumbnail_md5; + gchar* format_name; + Dimensions image_dim; + GdkColorspace colorspace; + gint channels; + gint bits_per_channel; +}; + +struct _DetectedPhotoInformationClass { + GTypeClass parent_class; + void (*finalize) (DetectedPhotoInformation *self); +}; + + +static gpointer gdk_reader_parent_class = NULL; +static gpointer gdk_sniffer_parent_class = NULL; + +gpointer photo_file_adapter_ref (gpointer instance); +void photo_file_adapter_unref (gpointer instance); +GParamSpec* param_spec_photo_file_adapter (const gchar* name, const gchar* nick, const gchar* blurb, GType object_type, GParamFlags flags); +void value_set_photo_file_adapter (GValue* value, gpointer v_object); +void value_take_photo_file_adapter (GValue* value, gpointer v_object); +gpointer value_get_photo_file_adapter (const GValue* value); +GType photo_file_adapter_get_type (void) G_GNUC_CONST; +GType photo_file_reader_get_type (void) G_GNUC_CONST; +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; +GType dimensions_get_type (void) G_GNUC_CONST; +Dimensions* dimensions_dup (const Dimensions* self); +void dimensions_free (Dimensions* self); +GType gdk_reader_get_type (void) G_GNUC_CONST; +enum { + GDK_READER_DUMMY_PROPERTY +}; +GType photo_file_format_get_type (void) G_GNUC_CONST; +GdkReader* gdk_reader_construct (GType object_type, const gchar* filepath, PhotoFileFormat file_format); +PhotoFileReader* photo_file_reader_construct (GType object_type, const gchar* filepath, PhotoFileFormat file_format); +static PhotoMetadata* gdk_reader_real_read_metadata (PhotoFileReader* base, GError** error); +PhotoMetadata* photo_metadata_new (void); +PhotoMetadata* photo_metadata_construct (GType object_type); +void media_metadata_read_from_file (MediaMetadata* self, GFile* file, GError** error); +GFile* photo_file_adapter_get_file (PhotoFileAdapter* self); +static GdkPixbuf* gdk_reader_real_unscaled_read (PhotoFileReader* base, GError** error); +gchar* photo_file_adapter_get_filepath (PhotoFileAdapter* self); +static GdkPixbuf* gdk_reader_real_scaled_read (PhotoFileReader* base, Dimensions* full, Dimensions* scaled, GError** error); +gpointer photo_file_sniffer_ref (gpointer instance); +void photo_file_sniffer_unref (gpointer instance); +GParamSpec* param_spec_photo_file_sniffer (const gchar* name, const gchar* nick, const gchar* blurb, GType object_type, GParamFlags flags); +void value_set_photo_file_sniffer (GValue* value, gpointer v_object); +void value_take_photo_file_sniffer (GValue* value, gpointer v_object); +gpointer value_get_photo_file_sniffer (const GValue* value); +GType photo_file_sniffer_get_type (void) G_GNUC_CONST; +gpointer detected_photo_information_ref (gpointer instance); +void detected_photo_information_unref (gpointer instance); +GParamSpec* param_spec_detected_photo_information (const gchar* name, const gchar* nick, const gchar* blurb, GType object_type, GParamFlags flags); +void value_set_detected_photo_information (GValue* value, gpointer v_object); +void value_take_detected_photo_information (GValue* value, gpointer v_object); +gpointer value_get_detected_photo_information (const GValue* value); +GType detected_photo_information_get_type (void) G_GNUC_CONST; +GType photo_file_sniffer_options_get_type (void) G_GNUC_CONST; +GType gdk_sniffer_get_type (void) G_GNUC_CONST; +#define GDK_SNIFFER_GET_PRIVATE(o) (G_TYPE_INSTANCE_GET_PRIVATE ((o), TYPE_GDK_SNIFFER, GdkSnifferPrivate)) +enum { + GDK_SNIFFER_DUMMY_PROPERTY +}; +GdkSniffer* gdk_sniffer_construct (GType object_type, GFile* file, PhotoFileSnifferOptions options); +PhotoFileSniffer* photo_file_sniffer_construct (GType object_type, GFile* file, PhotoFileSnifferOptions options); +static DetectedPhotoInformation* gdk_sniffer_real_sniff (PhotoFileSniffer* base, gboolean* is_corrupted, GError** error); +DetectedPhotoInformation* detected_photo_information_new (void); +DetectedPhotoInformation* detected_photo_information_construct (GType object_type); +static void gdk_sniffer_on_size_prepared (GdkSniffer* self, GdkPixbufLoader* loader, gint width, gint height); +static void _gdk_sniffer_on_size_prepared_gdk_pixbuf_loader_size_prepared (GdkPixbufLoader* _sender, gint width, gint height, gpointer self); +static void gdk_sniffer_on_area_prepared (GdkSniffer* self, GdkPixbufLoader* pixbuf_loader); +static void _gdk_sniffer_on_area_prepared_gdk_pixbuf_loader_area_prepared (GdkPixbufLoader* _sender, gpointer self); +guint8* photo_metadata_flatten_exif (PhotoMetadata* self, gboolean include_preview, int* result_length1); +gchar* md5_binary (guint8* buffer, gsize length); +guint8* photo_metadata_flatten_exif_preview (PhotoMetadata* self, int* result_length1); +static guint8* _vala_array_dup7 (guint8* self, int length); +void dimensions_init (Dimensions *self, gint width, gint height); +PhotoFileFormat photo_file_format_from_pixbuf_name (const gchar* name); +static void gdk_sniffer_finalize (PhotoFileSniffer* obj); + + +GdkReader* gdk_reader_construct (GType object_type, const gchar* filepath, PhotoFileFormat file_format) { + GdkReader* self = NULL; + const gchar* _tmp0_ = NULL; + PhotoFileFormat _tmp1_ = 0; +#line 8 "/home/jens/Source/shotwell/src/photos/GdkSupport.vala" + g_return_val_if_fail (filepath != NULL, NULL); +#line 9 "/home/jens/Source/shotwell/src/photos/GdkSupport.vala" + _tmp0_ = filepath; +#line 9 "/home/jens/Source/shotwell/src/photos/GdkSupport.vala" + _tmp1_ = file_format; +#line 9 "/home/jens/Source/shotwell/src/photos/GdkSupport.vala" + self = (GdkReader*) photo_file_reader_construct (object_type, _tmp0_, _tmp1_); +#line 8 "/home/jens/Source/shotwell/src/photos/GdkSupport.vala" + return self; +#line 310 "GdkSupport.c" +} + + +static PhotoMetadata* gdk_reader_real_read_metadata (PhotoFileReader* base, GError** error) { + GdkReader * self; + PhotoMetadata* result = NULL; + PhotoMetadata* metadata = NULL; + PhotoMetadata* _tmp0_ = NULL; + GFile* _tmp1_ = NULL; + GFile* _tmp2_ = NULL; + GError * _inner_error_ = NULL; +#line 12 "/home/jens/Source/shotwell/src/photos/GdkSupport.vala" + self = G_TYPE_CHECK_INSTANCE_CAST (base, TYPE_GDK_READER, GdkReader); +#line 13 "/home/jens/Source/shotwell/src/photos/GdkSupport.vala" + _tmp0_ = photo_metadata_new (); +#line 13 "/home/jens/Source/shotwell/src/photos/GdkSupport.vala" + metadata = _tmp0_; +#line 14 "/home/jens/Source/shotwell/src/photos/GdkSupport.vala" + _tmp1_ = photo_file_adapter_get_file (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_PHOTO_FILE_ADAPTER, PhotoFileAdapter)); +#line 14 "/home/jens/Source/shotwell/src/photos/GdkSupport.vala" + _tmp2_ = _tmp1_; +#line 14 "/home/jens/Source/shotwell/src/photos/GdkSupport.vala" + media_metadata_read_from_file (G_TYPE_CHECK_INSTANCE_CAST (metadata, TYPE_MEDIA_METADATA, MediaMetadata), _tmp2_, &_inner_error_); +#line 14 "/home/jens/Source/shotwell/src/photos/GdkSupport.vala" + _g_object_unref0 (_tmp2_); +#line 14 "/home/jens/Source/shotwell/src/photos/GdkSupport.vala" + if (G_UNLIKELY (_inner_error_ != NULL)) { +#line 14 "/home/jens/Source/shotwell/src/photos/GdkSupport.vala" + g_propagate_error (error, _inner_error_); +#line 14 "/home/jens/Source/shotwell/src/photos/GdkSupport.vala" + _media_metadata_unref0 (metadata); +#line 14 "/home/jens/Source/shotwell/src/photos/GdkSupport.vala" + return NULL; +#line 344 "GdkSupport.c" + } +#line 16 "/home/jens/Source/shotwell/src/photos/GdkSupport.vala" + result = metadata; +#line 16 "/home/jens/Source/shotwell/src/photos/GdkSupport.vala" + return result; +#line 350 "GdkSupport.c" +} + + +static GdkPixbuf* gdk_reader_real_unscaled_read (PhotoFileReader* base, GError** error) { + GdkReader * self; + GdkPixbuf* result = NULL; + GdkPixbuf* _tmp0_ = NULL; + gchar* _tmp1_ = NULL; + gchar* _tmp2_ = NULL; + GdkPixbuf* _tmp3_ = NULL; + GdkPixbuf* _tmp4_ = NULL; + GdkPixbuf* _tmp5_ = NULL; + GError * _inner_error_ = NULL; +#line 19 "/home/jens/Source/shotwell/src/photos/GdkSupport.vala" + self = G_TYPE_CHECK_INSTANCE_CAST (base, TYPE_GDK_READER, GdkReader); +#line 20 "/home/jens/Source/shotwell/src/photos/GdkSupport.vala" + _tmp1_ = photo_file_adapter_get_filepath (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_PHOTO_FILE_ADAPTER, PhotoFileAdapter)); +#line 20 "/home/jens/Source/shotwell/src/photos/GdkSupport.vala" + _tmp2_ = _tmp1_; +#line 20 "/home/jens/Source/shotwell/src/photos/GdkSupport.vala" + _tmp3_ = gdk_pixbuf_new_from_file (_tmp2_, &_inner_error_); +#line 20 "/home/jens/Source/shotwell/src/photos/GdkSupport.vala" + _tmp4_ = _tmp3_; +#line 20 "/home/jens/Source/shotwell/src/photos/GdkSupport.vala" + _g_free0 (_tmp2_); +#line 20 "/home/jens/Source/shotwell/src/photos/GdkSupport.vala" + _tmp0_ = _tmp4_; +#line 20 "/home/jens/Source/shotwell/src/photos/GdkSupport.vala" + if (G_UNLIKELY (_inner_error_ != NULL)) { +#line 20 "/home/jens/Source/shotwell/src/photos/GdkSupport.vala" + g_propagate_error (error, _inner_error_); +#line 20 "/home/jens/Source/shotwell/src/photos/GdkSupport.vala" + return NULL; +#line 384 "GdkSupport.c" + } +#line 20 "/home/jens/Source/shotwell/src/photos/GdkSupport.vala" + _tmp5_ = _tmp0_; +#line 20 "/home/jens/Source/shotwell/src/photos/GdkSupport.vala" + _tmp0_ = NULL; +#line 20 "/home/jens/Source/shotwell/src/photos/GdkSupport.vala" + result = _tmp5_; +#line 20 "/home/jens/Source/shotwell/src/photos/GdkSupport.vala" + _g_object_unref0 (_tmp0_); +#line 20 "/home/jens/Source/shotwell/src/photos/GdkSupport.vala" + return result; +#line 396 "GdkSupport.c" +} + + +static GdkPixbuf* gdk_reader_real_scaled_read (PhotoFileReader* base, Dimensions* full, Dimensions* scaled, GError** error) { + GdkReader * self; + GdkPixbuf* result = NULL; + GdkPixbuf* _tmp0_ = NULL; + gchar* _tmp1_ = NULL; + gchar* _tmp2_ = NULL; + Dimensions _tmp3_ = {0}; + gint _tmp4_ = 0; + Dimensions _tmp5_ = {0}; + gint _tmp6_ = 0; + GdkPixbuf* _tmp7_ = NULL; + GdkPixbuf* _tmp8_ = NULL; + GdkPixbuf* _tmp9_ = NULL; + GError * _inner_error_ = NULL; +#line 23 "/home/jens/Source/shotwell/src/photos/GdkSupport.vala" + self = G_TYPE_CHECK_INSTANCE_CAST (base, TYPE_GDK_READER, GdkReader); +#line 23 "/home/jens/Source/shotwell/src/photos/GdkSupport.vala" + g_return_val_if_fail (full != NULL, NULL); +#line 23 "/home/jens/Source/shotwell/src/photos/GdkSupport.vala" + g_return_val_if_fail (scaled != NULL, NULL); +#line 24 "/home/jens/Source/shotwell/src/photos/GdkSupport.vala" + _tmp1_ = photo_file_adapter_get_filepath (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_PHOTO_FILE_ADAPTER, PhotoFileAdapter)); +#line 24 "/home/jens/Source/shotwell/src/photos/GdkSupport.vala" + _tmp2_ = _tmp1_; +#line 24 "/home/jens/Source/shotwell/src/photos/GdkSupport.vala" + _tmp3_ = *scaled; +#line 24 "/home/jens/Source/shotwell/src/photos/GdkSupport.vala" + _tmp4_ = _tmp3_.width; +#line 24 "/home/jens/Source/shotwell/src/photos/GdkSupport.vala" + _tmp5_ = *scaled; +#line 24 "/home/jens/Source/shotwell/src/photos/GdkSupport.vala" + _tmp6_ = _tmp5_.height; +#line 24 "/home/jens/Source/shotwell/src/photos/GdkSupport.vala" + _tmp7_ = gdk_pixbuf_new_from_file_at_scale (_tmp2_, _tmp4_, _tmp6_, FALSE, &_inner_error_); +#line 24 "/home/jens/Source/shotwell/src/photos/GdkSupport.vala" + _tmp8_ = _tmp7_; +#line 24 "/home/jens/Source/shotwell/src/photos/GdkSupport.vala" + _g_free0 (_tmp2_); +#line 24 "/home/jens/Source/shotwell/src/photos/GdkSupport.vala" + _tmp0_ = _tmp8_; +#line 24 "/home/jens/Source/shotwell/src/photos/GdkSupport.vala" + if (G_UNLIKELY (_inner_error_ != NULL)) { +#line 24 "/home/jens/Source/shotwell/src/photos/GdkSupport.vala" + g_propagate_error (error, _inner_error_); +#line 24 "/home/jens/Source/shotwell/src/photos/GdkSupport.vala" + return NULL; +#line 446 "GdkSupport.c" + } +#line 24 "/home/jens/Source/shotwell/src/photos/GdkSupport.vala" + _tmp9_ = _tmp0_; +#line 24 "/home/jens/Source/shotwell/src/photos/GdkSupport.vala" + _tmp0_ = NULL; +#line 24 "/home/jens/Source/shotwell/src/photos/GdkSupport.vala" + result = _tmp9_; +#line 24 "/home/jens/Source/shotwell/src/photos/GdkSupport.vala" + _g_object_unref0 (_tmp0_); +#line 24 "/home/jens/Source/shotwell/src/photos/GdkSupport.vala" + return result; +#line 458 "GdkSupport.c" +} + + +static void gdk_reader_class_init (GdkReaderClass * klass) { +#line 7 "/home/jens/Source/shotwell/src/photos/GdkSupport.vala" + gdk_reader_parent_class = g_type_class_peek_parent (klass); +#line 7 "/home/jens/Source/shotwell/src/photos/GdkSupport.vala" + ((PhotoFileReaderClass *) klass)->read_metadata = gdk_reader_real_read_metadata; +#line 7 "/home/jens/Source/shotwell/src/photos/GdkSupport.vala" + ((PhotoFileReaderClass *) klass)->unscaled_read = gdk_reader_real_unscaled_read; +#line 7 "/home/jens/Source/shotwell/src/photos/GdkSupport.vala" + ((PhotoFileReaderClass *) klass)->scaled_read = gdk_reader_real_scaled_read; +#line 471 "GdkSupport.c" +} + + +static void gdk_reader_instance_init (GdkReader * self) { +} + + +GType gdk_reader_get_type (void) { + static volatile gsize gdk_reader_type_id__volatile = 0; + if (g_once_init_enter (&gdk_reader_type_id__volatile)) { + static const GTypeInfo g_define_type_info = { sizeof (GdkReaderClass), (GBaseInitFunc) NULL, (GBaseFinalizeFunc) NULL, (GClassInitFunc) gdk_reader_class_init, (GClassFinalizeFunc) NULL, NULL, sizeof (GdkReader), 0, (GInstanceInitFunc) gdk_reader_instance_init, NULL }; + GType gdk_reader_type_id; + gdk_reader_type_id = g_type_register_static (TYPE_PHOTO_FILE_READER, "GdkReader", &g_define_type_info, G_TYPE_FLAG_ABSTRACT); + g_once_init_leave (&gdk_reader_type_id__volatile, gdk_reader_type_id); + } + return gdk_reader_type_id__volatile; +} + + +GdkSniffer* gdk_sniffer_construct (GType object_type, GFile* file, PhotoFileSnifferOptions options) { + GdkSniffer* self = NULL; + GFile* _tmp0_ = NULL; + PhotoFileSnifferOptions _tmp1_ = 0; +#line 33 "/home/jens/Source/shotwell/src/photos/GdkSupport.vala" + g_return_val_if_fail (G_IS_FILE (file), NULL); +#line 34 "/home/jens/Source/shotwell/src/photos/GdkSupport.vala" + _tmp0_ = file; +#line 34 "/home/jens/Source/shotwell/src/photos/GdkSupport.vala" + _tmp1_ = options; +#line 34 "/home/jens/Source/shotwell/src/photos/GdkSupport.vala" + self = (GdkSniffer*) photo_file_sniffer_construct (object_type, _tmp0_, _tmp1_); +#line 33 "/home/jens/Source/shotwell/src/photos/GdkSupport.vala" + return self; +#line 505 "GdkSupport.c" +} + + +static void _gdk_sniffer_on_size_prepared_gdk_pixbuf_loader_size_prepared (GdkPixbufLoader* _sender, gint width, gint height, gpointer self) { +#line 41 "/home/jens/Source/shotwell/src/photos/GdkSupport.vala" + gdk_sniffer_on_size_prepared ((GdkSniffer*) self, _sender, width, height); +#line 512 "GdkSupport.c" +} + + +static void _gdk_sniffer_on_area_prepared_gdk_pixbuf_loader_area_prepared (GdkPixbufLoader* _sender, gpointer self) { +#line 42 "/home/jens/Source/shotwell/src/photos/GdkSupport.vala" + gdk_sniffer_on_area_prepared ((GdkSniffer*) self, _sender); +#line 519 "GdkSupport.c" +} + + +static guint8* _vala_array_dup7 (guint8* self, int length) { +#line 69 "/home/jens/Source/shotwell/src/photos/GdkSupport.vala" + return g_memdup (self, length * sizeof (guint8)); +#line 526 "GdkSupport.c" +} + + +static gpointer _detected_photo_information_ref0 (gpointer self) { +#line 108 "/home/jens/Source/shotwell/src/photos/GdkSupport.vala" + return self ? detected_photo_information_ref (self) : NULL; +#line 533 "GdkSupport.c" +} + + +static DetectedPhotoInformation* gdk_sniffer_real_sniff (PhotoFileSniffer* base, gboolean* is_corrupted, GError** error) { + GdkSniffer * self; + gboolean _vala_is_corrupted = FALSE; + DetectedPhotoInformation* result = NULL; + DetectedPhotoInformation* _tmp0_ = NULL; + GdkPixbufLoader* pixbuf_loader = NULL; + GdkPixbufLoader* _tmp1_ = NULL; + GdkPixbufLoader* _tmp2_ = NULL; + GdkPixbufLoader* _tmp3_ = NULL; + GChecksum* md5_checksum = NULL; + gboolean _tmp4_ = FALSE; + DetectedPhotoInformation* _tmp6_ = NULL; + PhotoMetadata* _tmp7_ = NULL; + gboolean _tmp12_ = FALSE; + gboolean _tmp13_ = FALSE; + guint8* _tmp38_ = NULL; + gint _tmp38__length1 = 0; + gint __tmp38__size_ = 0; + gboolean _tmp39_ = FALSE; + guint8* buffer = NULL; + guint8* _tmp42_ = NULL; + gint _tmp42__length1 = 0; + gint buffer_length1 = 0; + gint _buffer_size_ = 0; + gsize count = 0UL; + GFileInputStream* fins = NULL; + GFile* _tmp43_ = NULL; + GFileInputStream* _tmp44_ = NULL; + GFileInputStream* _tmp68_ = NULL; + gboolean _tmp70_ = FALSE; + gboolean _tmp75_ = FALSE; + gboolean _tmp76_ = FALSE; + DetectedPhotoInformation* _tmp78_ = NULL; + DetectedPhotoInformation* _tmp79_ = NULL; + GError * _inner_error_ = NULL; +#line 37 "/home/jens/Source/shotwell/src/photos/GdkSupport.vala" + self = G_TYPE_CHECK_INSTANCE_CAST (base, TYPE_GDK_SNIFFER, GdkSniffer); +#line 38 "/home/jens/Source/shotwell/src/photos/GdkSupport.vala" + _tmp0_ = detected_photo_information_new (); +#line 38 "/home/jens/Source/shotwell/src/photos/GdkSupport.vala" + _detected_photo_information_unref0 (self->priv->detected); +#line 38 "/home/jens/Source/shotwell/src/photos/GdkSupport.vala" + self->priv->detected = _tmp0_; +#line 40 "/home/jens/Source/shotwell/src/photos/GdkSupport.vala" + _tmp1_ = gdk_pixbuf_loader_new (); +#line 40 "/home/jens/Source/shotwell/src/photos/GdkSupport.vala" + pixbuf_loader = _tmp1_; +#line 41 "/home/jens/Source/shotwell/src/photos/GdkSupport.vala" + _tmp2_ = pixbuf_loader; +#line 41 "/home/jens/Source/shotwell/src/photos/GdkSupport.vala" + g_signal_connect (_tmp2_, "size-prepared", (GCallback) _gdk_sniffer_on_size_prepared_gdk_pixbuf_loader_size_prepared, self); +#line 42 "/home/jens/Source/shotwell/src/photos/GdkSupport.vala" + _tmp3_ = pixbuf_loader; +#line 42 "/home/jens/Source/shotwell/src/photos/GdkSupport.vala" + g_signal_connect (_tmp3_, "area-prepared", (GCallback) _gdk_sniffer_on_area_prepared_gdk_pixbuf_loader_area_prepared, self); +#line 45 "/home/jens/Source/shotwell/src/photos/GdkSupport.vala" + md5_checksum = NULL; +#line 46 "/home/jens/Source/shotwell/src/photos/GdkSupport.vala" + _tmp4_ = G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_PHOTO_FILE_SNIFFER, PhotoFileSniffer)->calc_md5; +#line 46 "/home/jens/Source/shotwell/src/photos/GdkSupport.vala" + if (_tmp4_) { +#line 598 "GdkSupport.c" + GChecksum* _tmp5_ = NULL; +#line 47 "/home/jens/Source/shotwell/src/photos/GdkSupport.vala" + _tmp5_ = g_checksum_new (G_CHECKSUM_MD5); +#line 47 "/home/jens/Source/shotwell/src/photos/GdkSupport.vala" + _g_checksum_free0 (md5_checksum); +#line 47 "/home/jens/Source/shotwell/src/photos/GdkSupport.vala" + md5_checksum = _tmp5_; +#line 606 "GdkSupport.c" + } +#line 49 "/home/jens/Source/shotwell/src/photos/GdkSupport.vala" + _tmp6_ = self->priv->detected; +#line 49 "/home/jens/Source/shotwell/src/photos/GdkSupport.vala" + _tmp7_ = photo_metadata_new (); +#line 49 "/home/jens/Source/shotwell/src/photos/GdkSupport.vala" + _media_metadata_unref0 (_tmp6_->metadata); +#line 49 "/home/jens/Source/shotwell/src/photos/GdkSupport.vala" + _tmp6_->metadata = _tmp7_; +#line 616 "GdkSupport.c" + { + DetectedPhotoInformation* _tmp8_ = NULL; + PhotoMetadata* _tmp9_ = NULL; + GFile* _tmp10_ = NULL; +#line 51 "/home/jens/Source/shotwell/src/photos/GdkSupport.vala" + _tmp8_ = self->priv->detected; +#line 51 "/home/jens/Source/shotwell/src/photos/GdkSupport.vala" + _tmp9_ = _tmp8_->metadata; +#line 51 "/home/jens/Source/shotwell/src/photos/GdkSupport.vala" + _tmp10_ = G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_PHOTO_FILE_SNIFFER, PhotoFileSniffer)->file; +#line 51 "/home/jens/Source/shotwell/src/photos/GdkSupport.vala" + media_metadata_read_from_file (G_TYPE_CHECK_INSTANCE_CAST (_tmp9_, TYPE_MEDIA_METADATA, MediaMetadata), _tmp10_, &_inner_error_); +#line 51 "/home/jens/Source/shotwell/src/photos/GdkSupport.vala" + if (G_UNLIKELY (_inner_error_ != NULL)) { +#line 631 "GdkSupport.c" + goto __catch27_g_error; + } + } + goto __finally27; + __catch27_g_error: + { + GError* err = NULL; + DetectedPhotoInformation* _tmp11_ = NULL; +#line 50 "/home/jens/Source/shotwell/src/photos/GdkSupport.vala" + err = _inner_error_; +#line 50 "/home/jens/Source/shotwell/src/photos/GdkSupport.vala" + _inner_error_ = NULL; +#line 54 "/home/jens/Source/shotwell/src/photos/GdkSupport.vala" + _tmp11_ = self->priv->detected; +#line 54 "/home/jens/Source/shotwell/src/photos/GdkSupport.vala" + _media_metadata_unref0 (_tmp11_->metadata); +#line 54 "/home/jens/Source/shotwell/src/photos/GdkSupport.vala" + _tmp11_->metadata = NULL; +#line 50 "/home/jens/Source/shotwell/src/photos/GdkSupport.vala" + _g_error_free0 (err); +#line 652 "GdkSupport.c" + } + __finally27: +#line 50 "/home/jens/Source/shotwell/src/photos/GdkSupport.vala" + if (G_UNLIKELY (_inner_error_ != NULL)) { +#line 50 "/home/jens/Source/shotwell/src/photos/GdkSupport.vala" + g_propagate_error (error, _inner_error_); +#line 50 "/home/jens/Source/shotwell/src/photos/GdkSupport.vala" + _g_checksum_free0 (md5_checksum); +#line 50 "/home/jens/Source/shotwell/src/photos/GdkSupport.vala" + _g_object_unref0 (pixbuf_loader); +#line 50 "/home/jens/Source/shotwell/src/photos/GdkSupport.vala" + return NULL; +#line 665 "GdkSupport.c" + } +#line 57 "/home/jens/Source/shotwell/src/photos/GdkSupport.vala" + _tmp13_ = G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_PHOTO_FILE_SNIFFER, PhotoFileSniffer)->calc_md5; +#line 57 "/home/jens/Source/shotwell/src/photos/GdkSupport.vala" + if (_tmp13_) { +#line 671 "GdkSupport.c" + DetectedPhotoInformation* _tmp14_ = NULL; + PhotoMetadata* _tmp15_ = NULL; +#line 57 "/home/jens/Source/shotwell/src/photos/GdkSupport.vala" + _tmp14_ = self->priv->detected; +#line 57 "/home/jens/Source/shotwell/src/photos/GdkSupport.vala" + _tmp15_ = _tmp14_->metadata; +#line 57 "/home/jens/Source/shotwell/src/photos/GdkSupport.vala" + _tmp12_ = _tmp15_ != NULL; +#line 680 "GdkSupport.c" + } else { +#line 57 "/home/jens/Source/shotwell/src/photos/GdkSupport.vala" + _tmp12_ = FALSE; +#line 684 "GdkSupport.c" + } +#line 57 "/home/jens/Source/shotwell/src/photos/GdkSupport.vala" + if (_tmp12_) { +#line 688 "GdkSupport.c" + guint8* flattened_sans_thumbnail = NULL; + DetectedPhotoInformation* _tmp16_ = NULL; + PhotoMetadata* _tmp17_ = NULL; + gint _tmp18_ = 0; + guint8* _tmp19_ = NULL; + gint flattened_sans_thumbnail_length1 = 0; + gint _flattened_sans_thumbnail_size_ = 0; + gboolean _tmp20_ = FALSE; + guint8* _tmp21_ = NULL; + gint _tmp21__length1 = 0; + guint8* flattened_thumbnail = NULL; + DetectedPhotoInformation* _tmp27_ = NULL; + PhotoMetadata* _tmp28_ = NULL; + gint _tmp29_ = 0; + guint8* _tmp30_ = NULL; + gint flattened_thumbnail_length1 = 0; + gint _flattened_thumbnail_size_ = 0; + gboolean _tmp31_ = FALSE; + guint8* _tmp32_ = NULL; + gint _tmp32__length1 = 0; +#line 58 "/home/jens/Source/shotwell/src/photos/GdkSupport.vala" + _tmp16_ = self->priv->detected; +#line 58 "/home/jens/Source/shotwell/src/photos/GdkSupport.vala" + _tmp17_ = _tmp16_->metadata; +#line 58 "/home/jens/Source/shotwell/src/photos/GdkSupport.vala" + _tmp19_ = photo_metadata_flatten_exif (_tmp17_, FALSE, &_tmp18_); +#line 58 "/home/jens/Source/shotwell/src/photos/GdkSupport.vala" + flattened_sans_thumbnail = _tmp19_; +#line 58 "/home/jens/Source/shotwell/src/photos/GdkSupport.vala" + flattened_sans_thumbnail_length1 = _tmp18_; +#line 58 "/home/jens/Source/shotwell/src/photos/GdkSupport.vala" + _flattened_sans_thumbnail_size_ = flattened_sans_thumbnail_length1; +#line 59 "/home/jens/Source/shotwell/src/photos/GdkSupport.vala" + _tmp21_ = flattened_sans_thumbnail; +#line 59 "/home/jens/Source/shotwell/src/photos/GdkSupport.vala" + _tmp21__length1 = flattened_sans_thumbnail_length1; +#line 59 "/home/jens/Source/shotwell/src/photos/GdkSupport.vala" + if (_tmp21_ != NULL) { +#line 727 "GdkSupport.c" + guint8* _tmp22_ = NULL; + gint _tmp22__length1 = 0; +#line 59 "/home/jens/Source/shotwell/src/photos/GdkSupport.vala" + _tmp22_ = flattened_sans_thumbnail; +#line 59 "/home/jens/Source/shotwell/src/photos/GdkSupport.vala" + _tmp22__length1 = flattened_sans_thumbnail_length1; +#line 59 "/home/jens/Source/shotwell/src/photos/GdkSupport.vala" + _tmp20_ = _tmp22__length1 > 0; +#line 736 "GdkSupport.c" + } else { +#line 59 "/home/jens/Source/shotwell/src/photos/GdkSupport.vala" + _tmp20_ = FALSE; +#line 740 "GdkSupport.c" + } +#line 59 "/home/jens/Source/shotwell/src/photos/GdkSupport.vala" + if (_tmp20_) { +#line 744 "GdkSupport.c" + DetectedPhotoInformation* _tmp23_ = NULL; + guint8* _tmp24_ = NULL; + gint _tmp24__length1 = 0; + guint8* _tmp25_ = NULL; + gint _tmp25__length1 = 0; + gchar* _tmp26_ = NULL; +#line 60 "/home/jens/Source/shotwell/src/photos/GdkSupport.vala" + _tmp23_ = self->priv->detected; +#line 60 "/home/jens/Source/shotwell/src/photos/GdkSupport.vala" + _tmp24_ = flattened_sans_thumbnail; +#line 60 "/home/jens/Source/shotwell/src/photos/GdkSupport.vala" + _tmp24__length1 = flattened_sans_thumbnail_length1; +#line 60 "/home/jens/Source/shotwell/src/photos/GdkSupport.vala" + _tmp25_ = flattened_sans_thumbnail; +#line 60 "/home/jens/Source/shotwell/src/photos/GdkSupport.vala" + _tmp25__length1 = flattened_sans_thumbnail_length1; +#line 60 "/home/jens/Source/shotwell/src/photos/GdkSupport.vala" + _tmp26_ = md5_binary (_tmp24_, (gsize) _tmp25__length1); +#line 60 "/home/jens/Source/shotwell/src/photos/GdkSupport.vala" + _g_free0 (_tmp23_->exif_md5); +#line 60 "/home/jens/Source/shotwell/src/photos/GdkSupport.vala" + _tmp23_->exif_md5 = _tmp26_; +#line 767 "GdkSupport.c" + } +#line 62 "/home/jens/Source/shotwell/src/photos/GdkSupport.vala" + _tmp27_ = self->priv->detected; +#line 62 "/home/jens/Source/shotwell/src/photos/GdkSupport.vala" + _tmp28_ = _tmp27_->metadata; +#line 62 "/home/jens/Source/shotwell/src/photos/GdkSupport.vala" + _tmp30_ = photo_metadata_flatten_exif_preview (_tmp28_, &_tmp29_); +#line 62 "/home/jens/Source/shotwell/src/photos/GdkSupport.vala" + flattened_thumbnail = _tmp30_; +#line 62 "/home/jens/Source/shotwell/src/photos/GdkSupport.vala" + flattened_thumbnail_length1 = _tmp29_; +#line 62 "/home/jens/Source/shotwell/src/photos/GdkSupport.vala" + _flattened_thumbnail_size_ = flattened_thumbnail_length1; +#line 63 "/home/jens/Source/shotwell/src/photos/GdkSupport.vala" + _tmp32_ = flattened_thumbnail; +#line 63 "/home/jens/Source/shotwell/src/photos/GdkSupport.vala" + _tmp32__length1 = flattened_thumbnail_length1; +#line 63 "/home/jens/Source/shotwell/src/photos/GdkSupport.vala" + if (_tmp32_ != NULL) { +#line 787 "GdkSupport.c" + guint8* _tmp33_ = NULL; + gint _tmp33__length1 = 0; +#line 63 "/home/jens/Source/shotwell/src/photos/GdkSupport.vala" + _tmp33_ = flattened_thumbnail; +#line 63 "/home/jens/Source/shotwell/src/photos/GdkSupport.vala" + _tmp33__length1 = flattened_thumbnail_length1; +#line 63 "/home/jens/Source/shotwell/src/photos/GdkSupport.vala" + _tmp31_ = _tmp33__length1 > 0; +#line 796 "GdkSupport.c" + } else { +#line 63 "/home/jens/Source/shotwell/src/photos/GdkSupport.vala" + _tmp31_ = FALSE; +#line 800 "GdkSupport.c" + } +#line 63 "/home/jens/Source/shotwell/src/photos/GdkSupport.vala" + if (_tmp31_) { +#line 804 "GdkSupport.c" + DetectedPhotoInformation* _tmp34_ = NULL; + guint8* _tmp35_ = NULL; + gint _tmp35__length1 = 0; + guint8* _tmp36_ = NULL; + gint _tmp36__length1 = 0; + gchar* _tmp37_ = NULL; +#line 64 "/home/jens/Source/shotwell/src/photos/GdkSupport.vala" + _tmp34_ = self->priv->detected; +#line 64 "/home/jens/Source/shotwell/src/photos/GdkSupport.vala" + _tmp35_ = flattened_thumbnail; +#line 64 "/home/jens/Source/shotwell/src/photos/GdkSupport.vala" + _tmp35__length1 = flattened_thumbnail_length1; +#line 64 "/home/jens/Source/shotwell/src/photos/GdkSupport.vala" + _tmp36_ = flattened_thumbnail; +#line 64 "/home/jens/Source/shotwell/src/photos/GdkSupport.vala" + _tmp36__length1 = flattened_thumbnail_length1; +#line 64 "/home/jens/Source/shotwell/src/photos/GdkSupport.vala" + _tmp37_ = md5_binary (_tmp35_, (gsize) _tmp36__length1); +#line 64 "/home/jens/Source/shotwell/src/photos/GdkSupport.vala" + _g_free0 (_tmp34_->thumbnail_md5); +#line 64 "/home/jens/Source/shotwell/src/photos/GdkSupport.vala" + _tmp34_->thumbnail_md5 = _tmp37_; +#line 827 "GdkSupport.c" + } +#line 57 "/home/jens/Source/shotwell/src/photos/GdkSupport.vala" + flattened_thumbnail = (g_free (flattened_thumbnail), NULL); +#line 57 "/home/jens/Source/shotwell/src/photos/GdkSupport.vala" + flattened_sans_thumbnail = (g_free (flattened_sans_thumbnail), NULL); +#line 833 "GdkSupport.c" + } +#line 69 "/home/jens/Source/shotwell/src/photos/GdkSupport.vala" + _tmp39_ = G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_PHOTO_FILE_SNIFFER, PhotoFileSniffer)->calc_md5; +#line 69 "/home/jens/Source/shotwell/src/photos/GdkSupport.vala" + if (_tmp39_) { +#line 839 "GdkSupport.c" + guint8* _tmp40_ = NULL; +#line 69 "/home/jens/Source/shotwell/src/photos/GdkSupport.vala" + _tmp40_ = g_new0 (guint8, 64 * 1024); +#line 69 "/home/jens/Source/shotwell/src/photos/GdkSupport.vala" + _tmp38_ = (g_free (_tmp38_), NULL); +#line 69 "/home/jens/Source/shotwell/src/photos/GdkSupport.vala" + _tmp38_ = _tmp40_; +#line 69 "/home/jens/Source/shotwell/src/photos/GdkSupport.vala" + _tmp38__length1 = 64 * 1024; +#line 69 "/home/jens/Source/shotwell/src/photos/GdkSupport.vala" + __tmp38__size_ = _tmp38__length1; +#line 851 "GdkSupport.c" + } else { + guint8* _tmp41_ = NULL; +#line 69 "/home/jens/Source/shotwell/src/photos/GdkSupport.vala" + _tmp41_ = g_new0 (guint8, 8 * 1024); +#line 69 "/home/jens/Source/shotwell/src/photos/GdkSupport.vala" + _tmp38_ = (g_free (_tmp38_), NULL); +#line 69 "/home/jens/Source/shotwell/src/photos/GdkSupport.vala" + _tmp38_ = _tmp41_; +#line 69 "/home/jens/Source/shotwell/src/photos/GdkSupport.vala" + _tmp38__length1 = 8 * 1024; +#line 69 "/home/jens/Source/shotwell/src/photos/GdkSupport.vala" + __tmp38__size_ = _tmp38__length1; +#line 864 "GdkSupport.c" + } +#line 69 "/home/jens/Source/shotwell/src/photos/GdkSupport.vala" + _tmp42_ = (_tmp38_ != NULL) ? _vala_array_dup7 (_tmp38_, _tmp38__length1) : ((gpointer) _tmp38_); +#line 69 "/home/jens/Source/shotwell/src/photos/GdkSupport.vala" + _tmp42__length1 = _tmp38__length1; +#line 69 "/home/jens/Source/shotwell/src/photos/GdkSupport.vala" + buffer = _tmp42_; +#line 69 "/home/jens/Source/shotwell/src/photos/GdkSupport.vala" + buffer_length1 = _tmp42__length1; +#line 69 "/home/jens/Source/shotwell/src/photos/GdkSupport.vala" + _buffer_size_ = buffer_length1; +#line 70 "/home/jens/Source/shotwell/src/photos/GdkSupport.vala" + count = (gsize) 0; +#line 73 "/home/jens/Source/shotwell/src/photos/GdkSupport.vala" + _tmp43_ = G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_PHOTO_FILE_SNIFFER, PhotoFileSniffer)->file; +#line 73 "/home/jens/Source/shotwell/src/photos/GdkSupport.vala" + _tmp44_ = g_file_read (_tmp43_, NULL, &_inner_error_); +#line 73 "/home/jens/Source/shotwell/src/photos/GdkSupport.vala" + fins = _tmp44_; +#line 73 "/home/jens/Source/shotwell/src/photos/GdkSupport.vala" + if (G_UNLIKELY (_inner_error_ != NULL)) { +#line 73 "/home/jens/Source/shotwell/src/photos/GdkSupport.vala" + g_propagate_error (error, _inner_error_); +#line 73 "/home/jens/Source/shotwell/src/photos/GdkSupport.vala" + buffer = (g_free (buffer), NULL); +#line 73 "/home/jens/Source/shotwell/src/photos/GdkSupport.vala" + _tmp38_ = (g_free (_tmp38_), NULL); +#line 73 "/home/jens/Source/shotwell/src/photos/GdkSupport.vala" + _g_checksum_free0 (md5_checksum); +#line 73 "/home/jens/Source/shotwell/src/photos/GdkSupport.vala" + _g_object_unref0 (pixbuf_loader); +#line 73 "/home/jens/Source/shotwell/src/photos/GdkSupport.vala" + return NULL; +#line 898 "GdkSupport.c" + } + { + gboolean _tmp45_ = FALSE; +#line 74 "/home/jens/Source/shotwell/src/photos/GdkSupport.vala" + _tmp45_ = TRUE; +#line 74 "/home/jens/Source/shotwell/src/photos/GdkSupport.vala" + while (TRUE) { +#line 906 "GdkSupport.c" + gsize bytes_read = 0UL; + GFileInputStream* _tmp46_ = NULL; + guint8* _tmp47_ = NULL; + gint _tmp47__length1 = 0; + gssize _tmp48_ = 0L; + gsize _tmp49_ = 0UL; + gsize _tmp50_ = 0UL; + gsize _tmp51_ = 0UL; + gboolean _tmp52_ = FALSE; + gboolean _tmp56_ = FALSE; + gboolean _tmp57_ = FALSE; + gboolean _tmp62_ = FALSE; + gboolean _tmp63_ = FALSE; + gboolean _tmp64_ = FALSE; +#line 74 "/home/jens/Source/shotwell/src/photos/GdkSupport.vala" + if (!_tmp45_) { +#line 923 "GdkSupport.c" + } +#line 74 "/home/jens/Source/shotwell/src/photos/GdkSupport.vala" + _tmp45_ = FALSE; +#line 75 "/home/jens/Source/shotwell/src/photos/GdkSupport.vala" + _tmp46_ = fins; +#line 75 "/home/jens/Source/shotwell/src/photos/GdkSupport.vala" + _tmp47_ = buffer; +#line 75 "/home/jens/Source/shotwell/src/photos/GdkSupport.vala" + _tmp47__length1 = buffer_length1; +#line 75 "/home/jens/Source/shotwell/src/photos/GdkSupport.vala" + _tmp48_ = g_input_stream_read (G_TYPE_CHECK_INSTANCE_CAST (_tmp46_, G_TYPE_INPUT_STREAM, GInputStream), _tmp47_, (gsize) _tmp47__length1, NULL, &_inner_error_); +#line 75 "/home/jens/Source/shotwell/src/photos/GdkSupport.vala" + bytes_read = (gsize) _tmp48_; +#line 75 "/home/jens/Source/shotwell/src/photos/GdkSupport.vala" + if (G_UNLIKELY (_inner_error_ != NULL)) { +#line 75 "/home/jens/Source/shotwell/src/photos/GdkSupport.vala" + g_propagate_error (error, _inner_error_); +#line 75 "/home/jens/Source/shotwell/src/photos/GdkSupport.vala" + _g_object_unref0 (fins); +#line 75 "/home/jens/Source/shotwell/src/photos/GdkSupport.vala" + buffer = (g_free (buffer), NULL); +#line 75 "/home/jens/Source/shotwell/src/photos/GdkSupport.vala" + _tmp38_ = (g_free (_tmp38_), NULL); +#line 75 "/home/jens/Source/shotwell/src/photos/GdkSupport.vala" + _g_checksum_free0 (md5_checksum); +#line 75 "/home/jens/Source/shotwell/src/photos/GdkSupport.vala" + _g_object_unref0 (pixbuf_loader); +#line 75 "/home/jens/Source/shotwell/src/photos/GdkSupport.vala" + return NULL; +#line 953 "GdkSupport.c" + } +#line 76 "/home/jens/Source/shotwell/src/photos/GdkSupport.vala" + _tmp49_ = bytes_read; +#line 76 "/home/jens/Source/shotwell/src/photos/GdkSupport.vala" + if (_tmp49_ <= ((gsize) 0)) { +#line 77 "/home/jens/Source/shotwell/src/photos/GdkSupport.vala" + break; +#line 961 "GdkSupport.c" + } +#line 79 "/home/jens/Source/shotwell/src/photos/GdkSupport.vala" + _tmp50_ = count; +#line 79 "/home/jens/Source/shotwell/src/photos/GdkSupport.vala" + _tmp51_ = bytes_read; +#line 79 "/home/jens/Source/shotwell/src/photos/GdkSupport.vala" + count = _tmp50_ + _tmp51_; +#line 81 "/home/jens/Source/shotwell/src/photos/GdkSupport.vala" + _tmp52_ = G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_PHOTO_FILE_SNIFFER, PhotoFileSniffer)->calc_md5; +#line 81 "/home/jens/Source/shotwell/src/photos/GdkSupport.vala" + if (_tmp52_) { +#line 973 "GdkSupport.c" + GChecksum* _tmp53_ = NULL; + guint8* _tmp54_ = NULL; + gint _tmp54__length1 = 0; + gsize _tmp55_ = 0UL; +#line 82 "/home/jens/Source/shotwell/src/photos/GdkSupport.vala" + _tmp53_ = md5_checksum; +#line 82 "/home/jens/Source/shotwell/src/photos/GdkSupport.vala" + _tmp54_ = buffer; +#line 82 "/home/jens/Source/shotwell/src/photos/GdkSupport.vala" + _tmp54__length1 = buffer_length1; +#line 82 "/home/jens/Source/shotwell/src/photos/GdkSupport.vala" + _tmp55_ = bytes_read; +#line 82 "/home/jens/Source/shotwell/src/photos/GdkSupport.vala" + g_checksum_update (_tmp53_, _tmp54_, _tmp55_); +#line 988 "GdkSupport.c" + } +#line 85 "/home/jens/Source/shotwell/src/photos/GdkSupport.vala" + _tmp57_ = self->priv->size_ready; +#line 85 "/home/jens/Source/shotwell/src/photos/GdkSupport.vala" + if (!_tmp57_) { +#line 85 "/home/jens/Source/shotwell/src/photos/GdkSupport.vala" + _tmp56_ = TRUE; +#line 996 "GdkSupport.c" + } else { + gboolean _tmp58_ = FALSE; +#line 85 "/home/jens/Source/shotwell/src/photos/GdkSupport.vala" + _tmp58_ = self->priv->area_prepared; +#line 85 "/home/jens/Source/shotwell/src/photos/GdkSupport.vala" + _tmp56_ = !_tmp58_; +#line 1003 "GdkSupport.c" + } +#line 85 "/home/jens/Source/shotwell/src/photos/GdkSupport.vala" + if (_tmp56_) { +#line 1007 "GdkSupport.c" + GdkPixbufLoader* _tmp59_ = NULL; + guint8* _tmp60_ = NULL; + gint _tmp60__length1 = 0; + gsize _tmp61_ = 0UL; +#line 86 "/home/jens/Source/shotwell/src/photos/GdkSupport.vala" + _tmp59_ = pixbuf_loader; +#line 86 "/home/jens/Source/shotwell/src/photos/GdkSupport.vala" + _tmp60_ = buffer; +#line 86 "/home/jens/Source/shotwell/src/photos/GdkSupport.vala" + _tmp60__length1 = buffer_length1; +#line 86 "/home/jens/Source/shotwell/src/photos/GdkSupport.vala" + _tmp61_ = bytes_read; +#line 86 "/home/jens/Source/shotwell/src/photos/GdkSupport.vala" + gdk_pixbuf_loader_write (_tmp59_, _tmp60_ + 0, (gsize) (((gint) _tmp61_) - 0), &_inner_error_); +#line 86 "/home/jens/Source/shotwell/src/photos/GdkSupport.vala" + if (G_UNLIKELY (_inner_error_ != NULL)) { +#line 86 "/home/jens/Source/shotwell/src/photos/GdkSupport.vala" + g_propagate_error (error, _inner_error_); +#line 86 "/home/jens/Source/shotwell/src/photos/GdkSupport.vala" + _g_object_unref0 (fins); +#line 86 "/home/jens/Source/shotwell/src/photos/GdkSupport.vala" + buffer = (g_free (buffer), NULL); +#line 86 "/home/jens/Source/shotwell/src/photos/GdkSupport.vala" + _tmp38_ = (g_free (_tmp38_), NULL); +#line 86 "/home/jens/Source/shotwell/src/photos/GdkSupport.vala" + _g_checksum_free0 (md5_checksum); +#line 86 "/home/jens/Source/shotwell/src/photos/GdkSupport.vala" + _g_object_unref0 (pixbuf_loader); +#line 86 "/home/jens/Source/shotwell/src/photos/GdkSupport.vala" + return NULL; +#line 1038 "GdkSupport.c" + } + } +#line 89 "/home/jens/Source/shotwell/src/photos/GdkSupport.vala" + _tmp64_ = G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_PHOTO_FILE_SNIFFER, PhotoFileSniffer)->calc_md5; +#line 89 "/home/jens/Source/shotwell/src/photos/GdkSupport.vala" + if (!_tmp64_) { +#line 1045 "GdkSupport.c" + gboolean _tmp65_ = FALSE; +#line 89 "/home/jens/Source/shotwell/src/photos/GdkSupport.vala" + _tmp65_ = self->priv->size_ready; +#line 89 "/home/jens/Source/shotwell/src/photos/GdkSupport.vala" + _tmp63_ = _tmp65_; +#line 1051 "GdkSupport.c" + } else { +#line 89 "/home/jens/Source/shotwell/src/photos/GdkSupport.vala" + _tmp63_ = FALSE; +#line 1055 "GdkSupport.c" + } +#line 89 "/home/jens/Source/shotwell/src/photos/GdkSupport.vala" + if (_tmp63_) { +#line 1059 "GdkSupport.c" + gboolean _tmp66_ = FALSE; +#line 89 "/home/jens/Source/shotwell/src/photos/GdkSupport.vala" + _tmp66_ = self->priv->area_prepared; +#line 89 "/home/jens/Source/shotwell/src/photos/GdkSupport.vala" + _tmp62_ = _tmp66_; +#line 1065 "GdkSupport.c" + } else { +#line 89 "/home/jens/Source/shotwell/src/photos/GdkSupport.vala" + _tmp62_ = FALSE; +#line 1069 "GdkSupport.c" + } +#line 89 "/home/jens/Source/shotwell/src/photos/GdkSupport.vala" + if (_tmp62_) { +#line 90 "/home/jens/Source/shotwell/src/photos/GdkSupport.vala" + break; +#line 1075 "GdkSupport.c" + } + } + } + { + GdkPixbufLoader* _tmp67_ = NULL; +#line 95 "/home/jens/Source/shotwell/src/photos/GdkSupport.vala" + _tmp67_ = pixbuf_loader; +#line 95 "/home/jens/Source/shotwell/src/photos/GdkSupport.vala" + gdk_pixbuf_loader_close (_tmp67_, &_inner_error_); +#line 95 "/home/jens/Source/shotwell/src/photos/GdkSupport.vala" + if (G_UNLIKELY (_inner_error_ != NULL)) { +#line 1087 "GdkSupport.c" + goto __catch28_g_error; + } + } + goto __finally28; + __catch28_g_error: + { + GError* err = NULL; +#line 94 "/home/jens/Source/shotwell/src/photos/GdkSupport.vala" + err = _inner_error_; +#line 94 "/home/jens/Source/shotwell/src/photos/GdkSupport.vala" + _inner_error_ = NULL; +#line 94 "/home/jens/Source/shotwell/src/photos/GdkSupport.vala" + _g_error_free0 (err); +#line 1101 "GdkSupport.c" + } + __finally28: +#line 94 "/home/jens/Source/shotwell/src/photos/GdkSupport.vala" + if (G_UNLIKELY (_inner_error_ != NULL)) { +#line 94 "/home/jens/Source/shotwell/src/photos/GdkSupport.vala" + g_propagate_error (error, _inner_error_); +#line 94 "/home/jens/Source/shotwell/src/photos/GdkSupport.vala" + _g_object_unref0 (fins); +#line 94 "/home/jens/Source/shotwell/src/photos/GdkSupport.vala" + buffer = (g_free (buffer), NULL); +#line 94 "/home/jens/Source/shotwell/src/photos/GdkSupport.vala" + _tmp38_ = (g_free (_tmp38_), NULL); +#line 94 "/home/jens/Source/shotwell/src/photos/GdkSupport.vala" + _g_checksum_free0 (md5_checksum); +#line 94 "/home/jens/Source/shotwell/src/photos/GdkSupport.vala" + _g_object_unref0 (pixbuf_loader); +#line 94 "/home/jens/Source/shotwell/src/photos/GdkSupport.vala" + return NULL; +#line 1120 "GdkSupport.c" + } +#line 99 "/home/jens/Source/shotwell/src/photos/GdkSupport.vala" + _tmp68_ = fins; +#line 99 "/home/jens/Source/shotwell/src/photos/GdkSupport.vala" + if (_tmp68_ != NULL) { +#line 1126 "GdkSupport.c" + GFileInputStream* _tmp69_ = NULL; +#line 100 "/home/jens/Source/shotwell/src/photos/GdkSupport.vala" + _tmp69_ = fins; +#line 100 "/home/jens/Source/shotwell/src/photos/GdkSupport.vala" + g_input_stream_close (G_TYPE_CHECK_INSTANCE_CAST (_tmp69_, G_TYPE_INPUT_STREAM, GInputStream), NULL, &_inner_error_); +#line 100 "/home/jens/Source/shotwell/src/photos/GdkSupport.vala" + if (G_UNLIKELY (_inner_error_ != NULL)) { +#line 100 "/home/jens/Source/shotwell/src/photos/GdkSupport.vala" + g_propagate_error (error, _inner_error_); +#line 100 "/home/jens/Source/shotwell/src/photos/GdkSupport.vala" + _g_object_unref0 (fins); +#line 100 "/home/jens/Source/shotwell/src/photos/GdkSupport.vala" + buffer = (g_free (buffer), NULL); +#line 100 "/home/jens/Source/shotwell/src/photos/GdkSupport.vala" + _tmp38_ = (g_free (_tmp38_), NULL); +#line 100 "/home/jens/Source/shotwell/src/photos/GdkSupport.vala" + _g_checksum_free0 (md5_checksum); +#line 100 "/home/jens/Source/shotwell/src/photos/GdkSupport.vala" + _g_object_unref0 (pixbuf_loader); +#line 100 "/home/jens/Source/shotwell/src/photos/GdkSupport.vala" + return NULL; +#line 1148 "GdkSupport.c" + } + } +#line 102 "/home/jens/Source/shotwell/src/photos/GdkSupport.vala" + _tmp70_ = G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_PHOTO_FILE_SNIFFER, PhotoFileSniffer)->calc_md5; +#line 102 "/home/jens/Source/shotwell/src/photos/GdkSupport.vala" + if (_tmp70_) { +#line 1155 "GdkSupport.c" + DetectedPhotoInformation* _tmp71_ = NULL; + GChecksum* _tmp72_ = NULL; + const gchar* _tmp73_ = NULL; + gchar* _tmp74_ = NULL; +#line 103 "/home/jens/Source/shotwell/src/photos/GdkSupport.vala" + _tmp71_ = self->priv->detected; +#line 103 "/home/jens/Source/shotwell/src/photos/GdkSupport.vala" + _tmp72_ = md5_checksum; +#line 103 "/home/jens/Source/shotwell/src/photos/GdkSupport.vala" + _tmp73_ = g_checksum_get_string (_tmp72_); +#line 103 "/home/jens/Source/shotwell/src/photos/GdkSupport.vala" + _tmp74_ = g_strdup (_tmp73_); +#line 103 "/home/jens/Source/shotwell/src/photos/GdkSupport.vala" + _g_free0 (_tmp71_->md5); +#line 103 "/home/jens/Source/shotwell/src/photos/GdkSupport.vala" + _tmp71_->md5 = _tmp74_; +#line 1172 "GdkSupport.c" + } +#line 106 "/home/jens/Source/shotwell/src/photos/GdkSupport.vala" + _tmp76_ = self->priv->size_ready; +#line 106 "/home/jens/Source/shotwell/src/photos/GdkSupport.vala" + if (!_tmp76_) { +#line 106 "/home/jens/Source/shotwell/src/photos/GdkSupport.vala" + _tmp75_ = TRUE; +#line 1180 "GdkSupport.c" + } else { + gboolean _tmp77_ = FALSE; +#line 106 "/home/jens/Source/shotwell/src/photos/GdkSupport.vala" + _tmp77_ = self->priv->area_prepared; +#line 106 "/home/jens/Source/shotwell/src/photos/GdkSupport.vala" + _tmp75_ = !_tmp77_; +#line 1187 "GdkSupport.c" + } +#line 106 "/home/jens/Source/shotwell/src/photos/GdkSupport.vala" + _vala_is_corrupted = _tmp75_; +#line 108 "/home/jens/Source/shotwell/src/photos/GdkSupport.vala" + _tmp78_ = self->priv->detected; +#line 108 "/home/jens/Source/shotwell/src/photos/GdkSupport.vala" + _tmp79_ = _detected_photo_information_ref0 (_tmp78_); +#line 108 "/home/jens/Source/shotwell/src/photos/GdkSupport.vala" + result = _tmp79_; +#line 108 "/home/jens/Source/shotwell/src/photos/GdkSupport.vala" + _g_object_unref0 (fins); +#line 108 "/home/jens/Source/shotwell/src/photos/GdkSupport.vala" + buffer = (g_free (buffer), NULL); +#line 108 "/home/jens/Source/shotwell/src/photos/GdkSupport.vala" + _tmp38_ = (g_free (_tmp38_), NULL); +#line 108 "/home/jens/Source/shotwell/src/photos/GdkSupport.vala" + _g_checksum_free0 (md5_checksum); +#line 108 "/home/jens/Source/shotwell/src/photos/GdkSupport.vala" + _g_object_unref0 (pixbuf_loader); +#line 108 "/home/jens/Source/shotwell/src/photos/GdkSupport.vala" + if (is_corrupted) { +#line 108 "/home/jens/Source/shotwell/src/photos/GdkSupport.vala" + *is_corrupted = _vala_is_corrupted; +#line 1211 "GdkSupport.c" + } +#line 108 "/home/jens/Source/shotwell/src/photos/GdkSupport.vala" + return result; +#line 1215 "GdkSupport.c" +} + + +static void gdk_sniffer_on_size_prepared (GdkSniffer* self, GdkPixbufLoader* loader, gint width, gint height) { + DetectedPhotoInformation* _tmp0_ = NULL; + gint _tmp1_ = 0; + gint _tmp2_ = 0; +#line 111 "/home/jens/Source/shotwell/src/photos/GdkSupport.vala" + g_return_if_fail (IS_GDK_SNIFFER (self)); +#line 111 "/home/jens/Source/shotwell/src/photos/GdkSupport.vala" + g_return_if_fail (GDK_IS_PIXBUF_LOADER (loader)); +#line 112 "/home/jens/Source/shotwell/src/photos/GdkSupport.vala" + _tmp0_ = self->priv->detected; +#line 112 "/home/jens/Source/shotwell/src/photos/GdkSupport.vala" + _tmp1_ = width; +#line 112 "/home/jens/Source/shotwell/src/photos/GdkSupport.vala" + _tmp2_ = height; +#line 112 "/home/jens/Source/shotwell/src/photos/GdkSupport.vala" + dimensions_init (&_tmp0_->image_dim, _tmp1_, _tmp2_); +#line 113 "/home/jens/Source/shotwell/src/photos/GdkSupport.vala" + self->priv->size_ready = TRUE; +#line 1237 "GdkSupport.c" +} + + +static gpointer _g_object_ref0 (gpointer self) { +#line 117 "/home/jens/Source/shotwell/src/photos/GdkSupport.vala" + return self ? g_object_ref (self) : NULL; +#line 1244 "GdkSupport.c" +} + + +static void gdk_sniffer_on_area_prepared (GdkSniffer* self, GdkPixbufLoader* pixbuf_loader) { + GdkPixbuf* pixbuf = NULL; + GdkPixbufLoader* _tmp0_ = NULL; + GdkPixbuf* _tmp1_ = NULL; + GdkPixbuf* _tmp2_ = NULL; + GdkPixbuf* _tmp3_ = NULL; + DetectedPhotoInformation* _tmp4_ = NULL; + GdkPixbuf* _tmp5_ = NULL; + GdkColorspace _tmp6_ = 0; + DetectedPhotoInformation* _tmp7_ = NULL; + GdkPixbuf* _tmp8_ = NULL; + gint _tmp9_ = 0; + DetectedPhotoInformation* _tmp10_ = NULL; + GdkPixbuf* _tmp11_ = NULL; + gint _tmp12_ = 0; + GdkPixbufFormat* format = NULL; + GdkPixbufLoader* _tmp13_ = NULL; + GdkPixbufFormat* _tmp14_ = NULL; + DetectedPhotoInformation* _tmp15_ = NULL; + GdkPixbufFormat* _tmp16_ = NULL; + gchar* _tmp17_ = NULL; + DetectedPhotoInformation* _tmp18_ = NULL; + DetectedPhotoInformation* _tmp19_ = NULL; + const gchar* _tmp20_ = NULL; + PhotoFileFormat _tmp21_ = 0; +#line 116 "/home/jens/Source/shotwell/src/photos/GdkSupport.vala" + g_return_if_fail (IS_GDK_SNIFFER (self)); +#line 116 "/home/jens/Source/shotwell/src/photos/GdkSupport.vala" + g_return_if_fail (GDK_IS_PIXBUF_LOADER (pixbuf_loader)); +#line 117 "/home/jens/Source/shotwell/src/photos/GdkSupport.vala" + _tmp0_ = pixbuf_loader; +#line 117 "/home/jens/Source/shotwell/src/photos/GdkSupport.vala" + _tmp1_ = gdk_pixbuf_loader_get_pixbuf (_tmp0_); +#line 117 "/home/jens/Source/shotwell/src/photos/GdkSupport.vala" + _tmp2_ = _g_object_ref0 (_tmp1_); +#line 117 "/home/jens/Source/shotwell/src/photos/GdkSupport.vala" + pixbuf = _tmp2_; +#line 118 "/home/jens/Source/shotwell/src/photos/GdkSupport.vala" + _tmp3_ = pixbuf; +#line 118 "/home/jens/Source/shotwell/src/photos/GdkSupport.vala" + if (_tmp3_ == NULL) { +#line 119 "/home/jens/Source/shotwell/src/photos/GdkSupport.vala" + _g_object_unref0 (pixbuf); +#line 119 "/home/jens/Source/shotwell/src/photos/GdkSupport.vala" + return; +#line 1293 "GdkSupport.c" + } +#line 121 "/home/jens/Source/shotwell/src/photos/GdkSupport.vala" + _tmp4_ = self->priv->detected; +#line 121 "/home/jens/Source/shotwell/src/photos/GdkSupport.vala" + _tmp5_ = pixbuf; +#line 121 "/home/jens/Source/shotwell/src/photos/GdkSupport.vala" + _tmp6_ = gdk_pixbuf_get_colorspace (_tmp5_); +#line 121 "/home/jens/Source/shotwell/src/photos/GdkSupport.vala" + _tmp4_->colorspace = _tmp6_; +#line 122 "/home/jens/Source/shotwell/src/photos/GdkSupport.vala" + _tmp7_ = self->priv->detected; +#line 122 "/home/jens/Source/shotwell/src/photos/GdkSupport.vala" + _tmp8_ = pixbuf; +#line 122 "/home/jens/Source/shotwell/src/photos/GdkSupport.vala" + _tmp9_ = gdk_pixbuf_get_n_channels (_tmp8_); +#line 122 "/home/jens/Source/shotwell/src/photos/GdkSupport.vala" + _tmp7_->channels = _tmp9_; +#line 123 "/home/jens/Source/shotwell/src/photos/GdkSupport.vala" + _tmp10_ = self->priv->detected; +#line 123 "/home/jens/Source/shotwell/src/photos/GdkSupport.vala" + _tmp11_ = pixbuf; +#line 123 "/home/jens/Source/shotwell/src/photos/GdkSupport.vala" + _tmp12_ = gdk_pixbuf_get_bits_per_sample (_tmp11_); +#line 123 "/home/jens/Source/shotwell/src/photos/GdkSupport.vala" + _tmp10_->bits_per_channel = _tmp12_; +#line 125 "/home/jens/Source/shotwell/src/photos/GdkSupport.vala" + _tmp13_ = pixbuf_loader; +#line 125 "/home/jens/Source/shotwell/src/photos/GdkSupport.vala" + _tmp14_ = gdk_pixbuf_loader_get_format (_tmp13_); +#line 125 "/home/jens/Source/shotwell/src/photos/GdkSupport.vala" + format = _tmp14_; +#line 126 "/home/jens/Source/shotwell/src/photos/GdkSupport.vala" + _tmp15_ = self->priv->detected; +#line 126 "/home/jens/Source/shotwell/src/photos/GdkSupport.vala" + _tmp16_ = format; +#line 126 "/home/jens/Source/shotwell/src/photos/GdkSupport.vala" + _tmp17_ = gdk_pixbuf_format_get_name (_tmp16_); +#line 126 "/home/jens/Source/shotwell/src/photos/GdkSupport.vala" + _g_free0 (_tmp15_->format_name); +#line 126 "/home/jens/Source/shotwell/src/photos/GdkSupport.vala" + _tmp15_->format_name = _tmp17_; +#line 127 "/home/jens/Source/shotwell/src/photos/GdkSupport.vala" + _tmp18_ = self->priv->detected; +#line 127 "/home/jens/Source/shotwell/src/photos/GdkSupport.vala" + _tmp19_ = self->priv->detected; +#line 127 "/home/jens/Source/shotwell/src/photos/GdkSupport.vala" + _tmp20_ = _tmp19_->format_name; +#line 127 "/home/jens/Source/shotwell/src/photos/GdkSupport.vala" + _tmp21_ = photo_file_format_from_pixbuf_name (_tmp20_); +#line 127 "/home/jens/Source/shotwell/src/photos/GdkSupport.vala" + _tmp18_->file_format = _tmp21_; +#line 129 "/home/jens/Source/shotwell/src/photos/GdkSupport.vala" + self->priv->area_prepared = TRUE; +#line 116 "/home/jens/Source/shotwell/src/photos/GdkSupport.vala" + _g_object_unref0 (pixbuf); +#line 1349 "GdkSupport.c" +} + + +static void gdk_sniffer_class_init (GdkSnifferClass * klass) { +#line 28 "/home/jens/Source/shotwell/src/photos/GdkSupport.vala" + gdk_sniffer_parent_class = g_type_class_peek_parent (klass); +#line 28 "/home/jens/Source/shotwell/src/photos/GdkSupport.vala" + ((PhotoFileSnifferClass *) klass)->finalize = gdk_sniffer_finalize; +#line 28 "/home/jens/Source/shotwell/src/photos/GdkSupport.vala" + g_type_class_add_private (klass, sizeof (GdkSnifferPrivate)); +#line 28 "/home/jens/Source/shotwell/src/photos/GdkSupport.vala" + ((PhotoFileSnifferClass *) klass)->sniff = gdk_sniffer_real_sniff; +#line 1362 "GdkSupport.c" +} + + +static void gdk_sniffer_instance_init (GdkSniffer * self) { +#line 28 "/home/jens/Source/shotwell/src/photos/GdkSupport.vala" + self->priv = GDK_SNIFFER_GET_PRIVATE (self); +#line 29 "/home/jens/Source/shotwell/src/photos/GdkSupport.vala" + self->priv->detected = NULL; +#line 30 "/home/jens/Source/shotwell/src/photos/GdkSupport.vala" + self->priv->size_ready = FALSE; +#line 31 "/home/jens/Source/shotwell/src/photos/GdkSupport.vala" + self->priv->area_prepared = FALSE; +#line 1375 "GdkSupport.c" +} + + +static void gdk_sniffer_finalize (PhotoFileSniffer* obj) { + GdkSniffer * self; +#line 28 "/home/jens/Source/shotwell/src/photos/GdkSupport.vala" + self = G_TYPE_CHECK_INSTANCE_CAST (obj, TYPE_GDK_SNIFFER, GdkSniffer); +#line 29 "/home/jens/Source/shotwell/src/photos/GdkSupport.vala" + _detected_photo_information_unref0 (self->priv->detected); +#line 28 "/home/jens/Source/shotwell/src/photos/GdkSupport.vala" + PHOTO_FILE_SNIFFER_CLASS (gdk_sniffer_parent_class)->finalize (obj); +#line 1387 "GdkSupport.c" +} + + +GType gdk_sniffer_get_type (void) { + static volatile gsize gdk_sniffer_type_id__volatile = 0; + if (g_once_init_enter (&gdk_sniffer_type_id__volatile)) { + static const GTypeInfo g_define_type_info = { sizeof (GdkSnifferClass), (GBaseInitFunc) NULL, (GBaseFinalizeFunc) NULL, (GClassInitFunc) gdk_sniffer_class_init, (GClassFinalizeFunc) NULL, NULL, sizeof (GdkSniffer), 0, (GInstanceInitFunc) gdk_sniffer_instance_init, NULL }; + GType gdk_sniffer_type_id; + gdk_sniffer_type_id = g_type_register_static (TYPE_PHOTO_FILE_SNIFFER, "GdkSniffer", &g_define_type_info, G_TYPE_FLAG_ABSTRACT); + g_once_init_leave (&gdk_sniffer_type_id__volatile, gdk_sniffer_type_id); + } + return gdk_sniffer_type_id__volatile; +} + + + |